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

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

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

技术分享

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

对于有的第三方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

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



郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。