在接手新項目要打包發佈APK時,輸入了gradle clean assembleRelease指令後,項目就開始漫長了編譯打包階段。以往打包(默認一個渠道包)也就2~3分鐘,但是昨天晚上卻要6分鐘之多,最後報一個異常:Execution failed for task 'app:transformClassesWithDexForRelease'.
>com.adnroid.build.api.transform.TransformException:com.android.ide.common.process.ProcessException:java.util.concurrent.ExecutionException:java.lang.OutOfMemoryError:GC overhead limit exceeded.
以上就是異常信息,造成異常的原因是Android studio分配的內存不夠,解決辦法如下:
1、在主module的build.gradle中android閉包添加如下代碼
dexOptions {
javaMaxHeapSize "6g"
}
2、在項目的gradle.properties中添加如下代碼:
org.gradle.daemon=true # 開啓Gradle守護進程 org.gradle.jvmargs=-Xms2048m -Xmx6656m #-Xms2048m初始的java內存堆大小2048M; -Xmx6144m最大的java內存堆大小這樣就行了!!!
有人問:6g、6656m能不能自己更改,明確告訴你,可以的!但是注意一個問題,-Xmx不能少於javaMaxHeapSize設定的值。
參考文章:Android studio遇到 java.lang.OutOfMemoryError: GC app:transformClassesWithDexForDebug解決方法 以及gradle優化