proguard-rules.pro混淆导jar包
Posted angelshelter
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了proguard-rules.pro混淆导jar包相关的知识,希望对你有一定的参考价值。
前记:
买了一个《精通android Studio》本来最想看的是关于混淆导jar包的,哪知道没有,有点小失望。
好吧,自己来。
在用Android Studio开发的时候,把minifyEnabled改true后,可以导出main.jar包。用解压软件打开,发现总有android.support这个包,这个应该是系统支持包吧。
如果不做处理的话,它里面的类都会被混淆,所以为了安全起见,还是加上
-keep class android.support.** { *; }
我之前就没注意,在打含有okhttp的混淆包的时候,就出错了(:app:transformClassesAndResourcesWithProguardForRelease)。
原来okhttp里面用到了javax.annotation.Nullable和javax.annotation.ParametersAreNonnullByDefault这两个类,找不到。
1 -dontwarn javax.annotation.Nullable
2 -keep class javax.annotation.Nullable {*; }
语句1和语句2不能相互替代,语句1用于jar包和外部依赖类,语句2用于自己写的类
-dontwarn 缺省proguard会检查每一个引用是否正确,但是第三方库里面往往有些不会用到的类,没有正确引用。如果不配置的话,系统就会报错。
解法解读
-dontwarn abcdef.cc.** 对 -dontwarn abcdef.cc.** { *; } 错 -keep class okio.** { *; } 对
以上是关于proguard-rules.pro混淆导jar包的主要内容,如果未能解决你的问题,请参考以下文章