今天在做项目的时候遇到了上面的问题,做一下记录
1、问题如下
Error:A problem was found with the configuration of task ':app:packageRelease'.
> File '/Users/user/AndroidStudioProject/workspace/demomaster/app/build/intermediates/res/resources-release-stripped.ap_' specified for property 'resourceFile' does not exist.
百度上面的问题后基本解决问题是,在主module的gradle中,buildTypes的release下把shrinkResources 改成false:
buildTypes {
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
minifyEnabled false
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources false// 此处修改成false
signingConfig signingConfigs.config
}
}
但是修改以后还是继续报错,正确的解决方法是:
在主module的gradle中,buildTypes的release下把shrinkResources 设置为true的同时 把minifyEnabled 也设置为true:
buildTypes {
release {
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
// 不显示Log
buildConfigField "boolean", "LOG_DEBUG", "false"
minifyEnabled true
zipAlignEnabled true
// 移除无用的resource文件
shrinkResources true// 此处和minifyEnabled 要同时设置为true
signingConfig signingConfigs.config
}
}
当上面的问题修改问以后又碰到了下面的问题
Error:Execution failed for task ':app:transformClassesAndResourcesWithProguardForRelease'.
> Job failed, see logs for details
这个问题是因为我们开启了混淆模式,那么可以将 -ignorewarnings -keep class * { public private *; }
添加到 Proguard 文件中,然后重新编译打包,这样就能解决打包报错的问题了!
混淆模式下还可以在Proguard中,以及是否保持哪些类库的代码等等!