2017-03-10 38 views
0

當我工作室的Android版本升級到2.3,和gradle這個版本3.3和Android gradle這個插件版本2.3.0,並buildToolsVersion版本25.0.0,它有一些問題當我使用這個命令「gradlew assembleRelease」來打包我的應用程序。執行失敗的任務「:應用程序:transformClassesAndResourcesWithProguardForXXXRelease」

Shrinking... 
Printing usage to [E:\workspace\android_source\src\app\build\outputs\mapping\XXX\release\usage.txt]... 
Removing unused program classes and class elements... 
    Original number of program classes: 10650 
    Final number of program classes: 10247 
Optimizing... 
Warning: Exception while processing task java.io.IOException: java.lang.NullPointerException 
:app:transformClassesAndResourcesWithProguardForXXXRelease FAILED 

FAILURE: Build failed with an exception. 

* What went wrong: 
Execution failed for task ':app:transformClassesAndResourcesWithProguardForXXXRelease'. 
> Job failed, see logs for details 

* Try: 
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. 

BUILD FAILED 

Total time: 1 mins 34.554 secs 

但是當我降級的Android gradle這個插件2.2.3版本,並buildToolsVersion到23.0.1,它運作良好。

+1

您的構建工具和Gradle可以進一步更新。可能會幫助 –

+0

但它是最新的 – forevas

+0

不,他們不是。搖籃是在3.4和構建工具都大於25 –

回答

0

我已經解決了這個問題,這是因爲ProGuard的版本太低,如果我們更新了插件的gradle,該版本比2.3.0更大,我們必須使用ProGuard的版本5.3.2或更高,這是如何使用高版本的ProGuard,這裏是兩種解決方案:

1.增加這些代碼在你的build.gradle文件的生成腳本方法:

buildscript { 
    ... 
    configurations.all { 
    resolutionStrategy { 
     force 'net.sf.proguard:proguard-gradle:5.3.3' 
    } 
    } 
} 

然後,重新包裝。

link 。那麼

2.To下載proguard.jar,在項目中創建的根路徑的文件夾,把罐子此文件夾中,在您的build.gradle文件中添加這些代碼:

buildscript { 
    repositories { 
     flatDir{dirs 'proguard'} 
     jcenter() 
    } 
    dependencies { 
     classpath 'com.android.tools.build:gradle:2.3.3' 
     classpath ':proguard:' 
    } 
} 

然後,重新包裝。

相關問題