proguard-rules.pro、混淆、导jar包
2017-06-08 20:26
351 查看
前记:
买了一个《精通Android Studio》本来最想看的是关于混淆导jar包的,哪知道没有,有点小失望。
好吧,自己来。
在用Android Studio开发的时候,把minifyEnabled改true后,可以导出main.jar包。用解压软件打开,发现总有android.support这个包,这个应该是系统支持包吧。
如果不做处理的话,它里面的类都会被混淆,所以为了安全起见,还是加上
我之前就没注意,在打含有okhttp的混淆包的时候,就出错了(:app:transformClassesAndResourcesWithProguardForRelease)。
原来okhttp里面用到了javax.annotation.Nullable和javax.annotation.ParametersAreNonnullByDefault这两个类,找不到。
语句1和语句2不能相互替代,语句1用于jar包和外部依赖类,语句2用于自己写的类
-dontwarn 缺省proguard会检查每一个引用是否正确,但是第三方库里面往往有些不会用到的类,没有正确引用。如果不配置的话,系统就会报错。
解法解读
买了一个《精通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.** { *; } 对
相关文章推荐
- 关于AndroidStudio混淆打包 proguard-rules.pro 的配置
- Android studio 混淆打包 proguard-rules.pro 与 bulid.gradle 配置总结
- Android proguard-rules.pro 混淆模板
- AndroidStudio proguard-rules.pro混淆 gson
- Android Studio中module配置好的bulid.gradle和混淆proguard-rules.pro
- Android Proguard-rules.pro中常用的混淆配置
- 代码混淆 proguard-rules.pro
- google的gson三方包混淆问题,附上通用proguard-rules.pro
- android 混淆文件的编写(proguard-rules.pro)
- android 混淆打包-最全proguard-rules.pro
- Android混淆proguard-rules.pro proguard-project.txt
- android工程创建的jar包使用proguard进行混淆
- proGuard5.1混淆hadoop jar包使用指南
- proguard-android.txt proguard-rules.pro
- 简单使用ProGuard混淆jar包
- 【proguard 专题一】如何混淆jar
- android工程创建的jar包使用proguard进行混淆
- [Android Pro] android 混淆文件project.properties和proguard-project.txt
- 【Android】jar包Proguard混淆方法
- Android Studio 生成Jar并混淆 使用Proguard混淆Java源代码