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

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

时间: 2024-11-02 13:07:27

Android 代码混淆can’t find referenced class问题解决方案的相关文章

Proguard android代码混淆 防止反编译

Proguard android代码混淆 防止反编译 http://www.360doc.com/content/13/1030/13/9171956_325290258.shtml

Android代码混淆(新版本ADT)

说明: 看网上说的很多Android代码混淆的方法都是旧版本ADT的方法,今天用到代码混淆,记下来分享一下,有需要的可以看看. 实践: 我就不写东西了,还是直接给大家看我项目中用到的文件就好了.注释我写在图片上了. 第二个文件的代码我还是写出来吧,可能有朋友用的和我的差不多.(注意不要把注释写进去) 这两个文件都是项目生成的时候由ADT自动生成的,不用自己加. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 -keep public class * extend

【转】Android代码混淆指南

请尊重他人的劳动成果,转载请注明出处:<Android代码混淆指南> 本文将和大家分享使用Eclipse+ADT与使用Android Studio进行代码混淆打包的方法. 使用Eclipse+ADT进行代码混淆打包的方法 新版本SDK下进行打包混淆 如果使用新版本的SDK创建的Android项目会在项目的根目录下生成一个proguard-project.txt文件,该文件是默认的混淆规则文件. 混淆打包的步骤: 1.在proguard-project.txt文件中添加混淆的项目规则,大家可参考

Android代码混淆之混淆规则

请尊重他人的劳动成果,转载请注明出处:<Android代码混淆技巧> 因为Android是使用Java开发的,所以开发者可以使用ProGuard对代码进行混淆.SDK已经集成了ProGuard工具,开发者可以从SDK目录下的\tools\proguard目录中进行查看. ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器.它可以检测并删除未使用的类,字段,方法和属性.它可以优化字节码,并删除未使用的指令.它可以将类.字段和方法使用短无意义的名称进行重命名.最后,预校验的Jav

Android代码混淆指南

请尊重他人的劳动成果,转载请注明出处:<Android代码混淆指南> 本文将和大家分享使用Eclipse+ADT与使用Android Studio进行代码混淆打包的方法. 使用Eclipse+ADT进行代码混淆打包的方法 新版本SDK下进行打包混淆 如果使用新版本的SDK创建的Android项目会在项目的根目录下生成一个proguard-project.txt文件,该文件是默认的混淆规则文件. 混淆打包的步骤: 1.在proguard-project.txt文件中添加混淆的项目规则,大家可参考

Android代码混淆

混淆器(ProGuard) --- 混淆器通过删除从未用过的代码和使用晦涩名字重命名类.字段和方法,对代码进行压缩,优化和混淆.结果是一个比較小的.apk文件,该文件比較难进行逆向project.因此,当你的应用程序对安全敏感(要求高),比如当你授权应用程序的时候,混淆器是一种重要的保护手段. 混淆器被集成在android 构建系统中,所以你不必手动调用它.同一时候混淆器仅在公布模式下进行构建应用程序的时候才会执行起来,所以在调试模式下构建程序时,你不必处理混淆代码.让混淆器执行起来是可选择的,

Android代码混淆及项目发布步骤记录

本来整理了一份Android项目混淆与发布的文档,突然想到何不写篇博客,分享一下呢,如是便有了本文. 一.清理代码中的调试信息,如Log.System.out 二.在清单文件中修改版本为当前版本,如果需要更新数据库,则需要在配置类或配置文件中修改程序数据库版本. 三.在清单文件中将项目的debugable设置为false 四.创建签名证书keystore文件 五.在项目中的project.properites文件中添加语句proguard.config=proguard-project.txt来

【转】 Android代码混淆之混淆规则

请尊重他人的劳动成果,转载请注明出处:<Android代码混淆技巧> 因为Android是使用Java开发的,所以开发者可以使用ProGuard对代码进行混淆.SDK已经集成了ProGuard工具,开发者可以从SDK目录下的\tools\proguard目录中进行查看. ProGuard是一个免费的Java类文件收缩,优化,混淆和预校验器.它可以检测并删除未使用的类,字段,方法和属性.它可以优化字节码,并删除未使用的指令.它可以将类.字段和方法使用短无意义的名称进行重命名.最后,预校验的Jav

android 代码混淆

android 代码 混淆- 原来如此简单 一个xxx.apk提交给测试. ok,去倒杯水,看看网页~~~~~ 呃,忽然觉得 是不是应该 给我的代码 提高点安全性, 记得看过 apk直接可以 解压,然后很容易的就可以 反编译出 .java 找了找,果然,这一切 只不过是 一分钟的事儿, 1.得到 classes.dex文件:直接用你机器上的  解压软件 打开 .apk 文件 解压出 classes.dex 文件,(这个就是 .jar 的前生--- 其实应该说 后世) 2.还原.jar文件:这一步