在接手新项目要打包发布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优化