首页 > 编程语言 > 详细

Afinal的jar包进行代码混淆出错

时间:2015-07-06 17:35:40      阅读:446      评论:0      收藏:0      [点我收藏+]

今天用到了代码混淆,混淆过后APP不能够运行,老报错,由于项目中只用了Afinal的第三方库,于是按照网上给出的答案为了不混淆Afinal的jar包,在配置文件中写入了下面的语句:

-libraryjars libs/afinal_0.5.1_bin.jar
-dontwarn net.tsz.afinal.** 
-keep class net.tsz.afinal.** { *; } 
-keep public class * extends net.tsz.afinal.**  
-keep public interface net.tsz.afinal.** {*;}

但是混淆后的包依旧报错,报错的日志中显示的是空指针异常,翻了翻代码,只用到了Afinal的FinalActivity的注解式获取View,有可能是该原因,于是又百度谷歌的找答案,这个框架用到了反射的机制,所以我们有时有必要加上如下语句:

-keepattributes Signature
-keepattributes *Annotation*

加上之后进行混淆时通不过,然后检查前后的配置,想了想是不是多了

-dontwarn 

因为在配置文件最前已经加了一句

-dontwarn

于是去掉

-dontwarn 

还是不行,查看错误日志,由于引入android-support-v4.jar,于是添加:

-dontwarn android.support.v4.**

OK,混淆通过,装机测试,OK,也通过了。

看到网上说有可能还有其他问题,需加入以下代码:

-keepclasseswithmembers class xxx.** {
     <fields>;
     <methods>;
}

将xxx换成你继承的afinal的这个包名加类名即可。
加上这些,基本上算是没啥问题了!

Afinal的jar包进行代码混淆出错

原文:http://www.cnblogs.com/leevey/p/4624672.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!