Android 代码混淆can’t find referenced class问题解决方案

前面一文介绍了Android使用ProGuard代码混淆技术,不过对于某些引入了第三方jar包的项目可能在导出的时候会报错,这时就需要对proguard配置文件进行一些研究才能解决问题了。

ProGuard 代码混淆后导出警告:can’t find referenced class

20131004120218

一、这时候最简单的解决方法:

对于有的第三方jar,可能已经进行过代码混淆了,在这里就要保持,例如百度的地图包jar。保持jar,避免混淆的代码如下:

-keep class com.baidu.mapapi.** {*;}

不混淆com.baidu.mapapi包中的所有代码,类名、方法、变量等。

二、如果还是报错的话请参考此文:http://blog.csdn.net/u_xtian/article/details/7495023

在此感谢作者,解决了我的问题,其实最终方案很简单,添加两行就好了:

其实找不到引用的这个类是第三方包里面的,而且很多时候我们只需要打乱自己的代码就行了,第三方包的代码就是否要打乱就不要管了。

我们可以使用:

-dontwarn com.xx.bbb.**
-keep class com.xx.bbb.** { *;}

参数来保持第三方库中的类而不乱,-dontwarn和-keep 结合使用,意思是保持com.xx.bbb.**这个包里面的所有类和所有方法而不混淆,接着还叫ProGuard不要警告找不到com.xx.bbb.**这个包里面的类的相关引用

配置好后,重新打包,一切OK!而且程序能正确运行。


以上是本人在写混淆配置文件的时候遇到的错误解决方法

本人在项目中开发使用ant批量打包混淆的配置文件已经上传 点击打开链接

http://download.csdn.net/detail/fancylovejava/8551463

记录下,以后再做其他项目批量打包的时候可以借鉴下!



  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值