关于AFinal的混淆

http://blog.csdn.net/aibieqing241/article/details/38979531

我的前个项目中打算引用个框架,于是就看上了AFinal的这个开源库,

感觉用着还不错,可是却到最后的关键地方,掉链子了,就是我在混淆打包后,

死活都是在报错,或者直接就是点击事件没反应。

    无奈的啊,只好求助百度和Google了,可是最后发现都不好使啊!不过最后

我还是在无意间解决了这个问题。

我们一般情况下是这样加的:

-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.** {*;}
 
可是最后往往不行,于是在网上无意间发现这个点击打开链接
我在想这个框架应该是用到了反射的机制,所以我们有时有必要加上
 
-keepattributes Signature
-keepattributes *Annotation*
 
这两个属性
后来发现时解决了一些问题,但是同时又产生了一些问题,看来官网才加上的
-keepclasseswithmembers class xxx.** {
     <fields>;
     <methods>;
}
把xxx换成你继承的afinal的这个包名加类名就行了。
 
把上面的这三个加上,基本上算是没啥问题了!
原文地址:https://www.cnblogs.com/tc310/p/4617739.html