2016-09-22 93 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