作为Android Studio 2.2推出的一部分,我将Gradle Build工具更新为v2.2。执行此操作后,我签名的APK构建过程失败,因为我有shrinkResources = true。
一旦我切换回Gradle v2.1.3或设置shrinkResources = false一切正常。这是我的app gradle构建文件:
android {
signingConfigs {
}
compileSdkVersion 24
buildToolsVersion '24.0.0'
defaultConfig {
applicationId "com.sample.testapp"
minSdkVersion 21
targetSdkVersion 24
versionCode 4
versionName "0.0.4"
}
buildTypes {
release {
minifyEnabled false
shrinkResources true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
proguardFile 'C:/Users/code/testapp/app/proguard-rules.pro'
}
}
productFlavors {
}
}
Gradle设置为v2.2,这是生成签名APK时的构建错误
有谁知道为什么会这样,以及是否有解决方法?我已经用Google搜索过了一些关于alpha和beta Gradle版本的旧版Android Bug报告,但是我发现的报告大概是6个月(以及以前的Gradle版本)。
P.S。我知道minifyEnabled = false当前,我还没有调查我所包含的库的正确的proguard规则集,以防止签名版本由于缺少库而错误输出。
答案 0 :(得分:7)
要使用shrinkResources
,您必须使用minifyEnabled
资源缩减仅适用于代码收缩。 代码缩减器删除所有未使用的代码后,资源缩减器 可以识别应用程序仍在使用哪些资源。这是特别的 当您添加包含资源的代码库时,您必须这样做 删除未使用的库代码,以便库资源成为 未引用的,因而可以通过资源缩减器移除。
要启用资源收缩,请将shrinkResources属性设置为true 在build.gradle文件中(与minifyEnabled一起代码 收缩)。
答案 1 :(得分:3)
使用
minifyEnabled false
shrinkResources false
或
minifyEnabled true
shrinkResources true
可能是android gradle插件上的错误
等待谷歌修复错误