2013-12-03 3 views
2

Когда я включаю снимок банку кофе эспрессо в моем проекте, мои Gradle сборниках повесить, а затем вышвырнуть со следующим сообщением:Android Эспрессо - java.lang.OutOfMemoryError: GC предел накладных расходов превысил

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), но сборка продолжалась длительное время (несколько минут), пока мой компьютер становился все горячее и горячее, но не заканчивался. Без этой банки не требуется больше минуты.

ответ

0

Это похоже на проблему зависимости от библиотеки библиотеки Maven. Я исправил проблему, удалив некоторые библиотеки ... Flurry в этом случае.

Зависимости Maven могут использоваться, но не сливаются с Android + Gradle, когда есть конфликты. К сожалению, у вас не так много другой информации. :(

Edit:

Вы можете проверить двойной эспрессо Jake Wharton для лучшей совместимости Gradle https://github.com/JakeWharton/double-espresso

6

Я думаю, что есть отдельный способ поднять предел кучи операции Dexing. Добавьте это к своему закрытию Android в файле build.gradle:

dexOptions { 
    incremental true 
    javaMaxHeapSize "4g" 
} 
+0

это полезно для меня, thx – 3h3