有时候我们打包apk时会开启混淆,简单做法有时候是这样:
release {
minifyEnabled true
//前一部分代表系统默认的android程序的混淆文件,该文件已经包含了基本的混淆声明,后一个文件是自己的定义混淆文件
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
混淆文件我们也会参考官方模板,同时用到了第三方的库也需要按需添加混淆代码。往往有时候打包过了,我们也就不怎么具体关注了。最近改版之前同事的工程,打包正常,就是很多警告,类似EnclosingMethod、EnclosingMethod之类的,由于还用到了友盟推送,就有了关于友盟sdk相关的警告(后面还有很多类似的):


直接看解决方案
1. app的proguard-rules.pro下淆添加

2. app的build.gradle下的buildTypes的release下添加
minifyEnabled true
//Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
2.1 网上有些还添加了别的debuggable、jniDebuggable,但是实际上并不需要。可能有些警告需要添加,或许根据情况都可以试试?具体还是需要看具体的属性官方解释, 这样或许才能彻底了解每个属性的意义。(先留个伏笔,后面专门去研究下相关属性以及混淆的具体知识...)
minifyEnabled true
//Zipalign优化
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true
debuggable false
jniDebuggable false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
网友评论