当我在我的项目中包含espresso快照jar时,我的gradle编辑会挂起然后踢出以下消息:
UNEXPECTED TOP-LEVEL ERROR:
java.lang.OutOfMemoryError: GC overhead limit exceeded
at java.util.Arrays.copyOf(Arrays.java:2219)
at java.util.ArrayList.toArray(ArrayList.java:358)
at java.util.ArrayList.<init>(ArrayList.java:164)
at com.android.dx.ssa.SsaMethod.getUseListCopy(SsaMethod.java:660)
at com.android.dx.ssa.ConstCollector.updateConstUses(ConstCollector.java:333)
at com.android.dx.ssa.ConstCollector.run(ConstCollector.java:147)
at com.android.dx.ssa.ConstCollector.process(ConstCollector.java:75)
at com.android.dx.ssa.Optimizer.runSsaFormSteps(Optimizer.java:181)
at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:99)
at com.android.dx.ssa.Optimizer.optimize(Optimizer.java:72)
at com.android.dx.dex.cf.CfTranslator.processMethods(CfTranslator.java:303)
at com.android.dx.dex.cf.CfTranslator.translate0(CfTranslator.java:139)
at com.android.dx.dex.cf.CfTranslator.translate(CfTranslator.java:94)
at com.android.dx.command.dexer.Main.processClass(Main.java:682)
at com.android.dx.command.dexer.Main.processFileBytes(Main.java:634)
at com.android.dx.command.dexer.Main.access$600(Main.java:78)
at com.android.dx.command.dexer.Main$1.processFileBytes(Main.java:572)
at com.android.dx.cf.direct.ClassPathOpener.processArchive(ClassPathOpener.java:284)
at com.android.dx.cf.direct.ClassPathOpener.processOne(ClassPathOpener.java:166)
at com.android.dx.cf.direct.ClassPathOpener.process(ClassPathOpener.java:144)
at com.android.dx.command.dexer.Main.processOne(Main.java:596)
at com.android.dx.command.dexer.Main.processAllFiles(Main.java:498)
at com.android.dx.command.dexer.Main.runMonoDex(Main.java:264)
at com.android.dx.command.dexer.Main.run(Main.java:230)
at com.android.dx.command.dexer.Main.main(Main.java:199)
at com.android.dx.command.Main.main(Main.java:103)
:Project:dexFlavorEnterpriseDebug FAILED
从我的研究中听起来这是一个依赖性问题。你会怎么建议我去解决这个问题?
我尝试碰撞堆空间(-Xmx2048),但是在我的计算机越来越热但未完成时,构建运行了很长一段时间(几分钟)。没有这个jar,编译永远不会超过一分钟。
答案 0 :(得分:6)
我认为有一种单独的方法可以提高dexing操作的堆限制。将它添加到build.gradle文件中的android闭包中:
dexOptions {
incremental true
javaMaxHeapSize "4g"
}
答案 1 :(得分:0)
这似乎是某种Maven库依赖问题。我通过删除某些库修复了这个问题......在这种情况下乱舞。
Maven依赖项可用,但在发生冲突时不能与Android + Gradle很好地融合。不幸的是,没有很多其他信息可供分享。 :(
修改强>
您可能需要查看Jake Wharton的双浓咖啡,以获得更好的Gradle兼容性。 https://github.com/JakeWharton/double-espresso