前记:

买了一个《精通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.** { *; } 对

最新文章

  1. Daily Scrum 12.9
  2. 二叉平衡查找树AvlTree(C实现)
  3. Linux 下子线程 exit code 在主线程中的使用
  4. 【转】Python 列表排序
  5. C# 中间语言、CLR、CTS、CLS
  6. HDU 5762 Teacher Bo (暴力)
  7. 普通用户开启AUTOTRACE 功能
  8. Hibernate征途(五)之继承映射和组件映射
  9. JS实现继承多态
  10. 一个ajax实现表单上传文件的神器 formdata
  11. Java基础07 包
  12. USB的包结构及包分类
  13. lua元表
  14. Android测试(二)——adb常用命令
  15. centos 6.5 ruby环境安装
  16. Nginx FIND_CONFIG阶段
  17. SQL truncate 、delete与drop区别[z]
  18. Ng第十四课:降维(Dimensionality Reduction)
  19. [JavaScript] - 7kyu
  20. bzoj 4006 [JLOI2015]管道连接——斯坦纳树

热门文章

  1. spring 事务传播
  2. 665. Non-decreasing Array
  3. leetcode 167 two sum II
  4. python--第四天总结
  5. 安卓下H5弹窗display:table的bug
  6. Python compile() 函数
  7. python中matplotlib所绘制的图包含了很多的对象
  8. 利用sshtunnel实现跳板机的效果[嵌套ssh实现]
  9. redis 集群java.lang.NoSuchMethodError:SpringJAR包版本冲突错误解决方法
  10. python+selenium环境安装