多个moudle混淆配置问题:
主模块的混淆开关配置会直接影响到子模块,也就是说如果你的主模块开启了混淆,就算你的子模块关闭混淆开关,最终子模块还是会被混淆的。
其次
子模块混淆文件的指定是通过consumerProguardFiles这个属性来指定的,并不是proguardFiles 属性,而且我们无需配置其他的选项,只需要配置consumerProguardFiles属性就可以。该属性表示在打包的时候会自动寻找该module下我们指定的混淆文件对代码进行混淆。
buildTypes {
release {
minifyEnabled true
consumerProguardFiles 'proguard-rules.pro'
}
如果同时配置了
consumerProguardFiles(自定义) 和 proguardFiles,那么consumerProguardFiles会覆盖proguardFiles,以consumerProguardFiles 自定义的为准
如果只配置了proguardFiles
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
这个是把sdk\tools\proguard下面的proguard-android.txt拷贝到proguard-rules.pro作为混淆文件,如果proguard-rules.pro本身也有内容,那就合并本身和proguard-android.txt的内容