码迷,mamicode.com
首页 > 移动开发 > 详细

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

时间:2015-03-31 20:11:36      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

前面一文介绍了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

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



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

标签:

原文地址:http://blog.csdn.net/fancylovejava/article/details/44782983

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!