2016-09-22 94 views
4

作为Android Studio 2.2推出的一部分,我将我的Gradle Build工具更新为v2.2。这样做后,我签名的APK构建过程失败,因为我有shrinkResources = true。Android Gradle 2.2不允许缩写资源签名APK

一旦我切换回Gradle v2.1.3或设置shrinkResources = false一切正常。这里是我的应用程序gradle这个build文件:

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 { 
    } 
} 

随着摇篮设置为V2.2,这里的生成错误产生签署APK

enter image description here

有谁知道什么时候我明白为什么这正在发生,如果有工作吗?我搜索了一下,并且看到了一些关于alpha和beta Gradle构建的旧版Android Bug报告,但我发现这些报告大于6个月(以及之前的Gradle版本)。

P.S.我知道minifyEnabled = false目前,我还没有为我包含的库调查正确的proguard规则集,以防止由于缺少库而导致签名生成错误。

回答

7

要使用shrinkResources你必须使用minifyEnabled

作为每Android documentation

资源收缩他只与代码萎缩结合使用。 代码收缩器删除所有未使用的代码后,资源收缩器 可以识别应用程序仍在使用哪些资源。当添加包含资源的代码库时,这尤其是 ,您必须删除未使用的库代码,以便库资源变为 未引用,因此可由资源收缩器移除。

要启用资源收缩,请在您的build.gradle文件中将shrinkResources属性设置为true (与minifyEnabled一起代码为 的收缩)。

+0

谢谢!必须是它以前工作的“功能” –

2

使用

minifyEnabled false 
shrinkResources false 

minifyEnabled true 
shrinkResources true 

可能会在Android gradle这个插件的错误

等待谷歌修复的bug