gradle编译卡住,OutOfMemoryError的问题

原创
2016/09/18 16:22
阅读数 2.2K

前段时间我的打包脚本在编译打包的时候卡住了,而且卡住之后就再也不会继续打包了,具体的现象如下:

:solitaire:transformClassesWithJarMergingForFullflavorRelease UP-TO-DATE
:solitaire:collectFullflavorReleaseMultiDexComponents UP-TO-DATE
:solitaire:transformClassesWithMultidexlistForFullflavorRelease UP-TO-DATE
building %81 :solitaire:transformClassesWithDexForFullflavorRelease

而且后面会报出

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: java.lang.OutOfMemoryError: GC overhead limit exceeded

com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: Return code 1 for dex process

的错误,竟然和内存有关系,可是我明明给他分配了3g的内存了呀,总不能再给他分配5g的内存吧,痛定思痛,决定好好想一想问题出在什么地方。 回忆了一下,这个问题是在我们又增加了一个应用和多个module库之后出现的(ps:由于应用的相似性,多个应用是放在一个android studio工程下),于是去看了一下编译设置,在gradle.properties中发现了这么一项

org.gradle.parallel=true

开启了并行编译设置,又去看了一下说明,官方建议只在项目之间不相关联的时候开启,由于刚开始的时候我们的项目还比较小就随手打开了(我的锅,浪费了name多时间来查找问题。。。) 所以保险起见,一定要关上并行编译!

org.gradle.parallel=false
org.gradle.parallel=false
org.gradle.parallel=false

重要的事情说三遍。。。

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部