java.lang.OutOfMemoryError во время сборки Android 2.1 на Mac OS X 10.6.8 - PullRequest
4 голосов
/ 27 июня 2011

Вот проблема сборки, с которой я борюсь.Я пытаюсь собрать Android 2.1 на Mac OS X 10.6.8 с jdk 1.5.Команда «make» выполняется некоторое время и в конце выдает:

The system is out of resources.
Consult the following stack trace for details.
java.lang.OutOfMemoryError: Java heap space
    at com.sun.tools.javac.code.Scope.dble(Scope.java:150)
    at com.sun.tools.javac.code.Scope.enter(Scope.java:185)
    at com.sun.tools.javac.comp.MemberEnter.importAll(MemberEnter.java:129)
    at com.sun.tools.javac.comp.MemberEnter.visitTopLevel(MemberEnter.java:504)
    at com.sun.tools.javac.tree.Tree$TopLevel.accept(Tree.java:382)
    at com.sun.tools.javac.comp.MemberEnter.memberEnter(MemberEnter.java:383)
    at com.sun.tools.javac.comp.MemberEnter.complete(MemberEnter.java:778)
    at com.sun.tools.javac.code.Symbol.complete(Symbol.java:355)
    at com.sun.tools.javac.code.Symbol$ClassSymbol.complete(Symbol.java:612)
    at com.sun.tools.javac.comp.Enter.complete(Enter.java:463)
    at com.sun.tools.javac.comp.Enter.main(Enter.java:441)
    at com.sun.tools.javac.main.JavaCompiler.compile(JavaCompiler.java:404)
    at com.sun.tools.javac.main.Main.compile(Main.java:592)
    at com.sun.tools.javac.main.Main.compile(Main.java:544)
    at com.sun.tools.javac.Main.compile(Main.java:92)
    at util.build.JavacBuildStep.build(JavacBuildStep.java:69)
    at util.build.BuildDalvikSuite.handleTests(BuildDalvikSuite.java:504)
    at util.build.BuildDalvikSuite.compose(BuildDalvikSuite.java:170)
    at util.build.BuildDalvikSuite.main(BuildDalvikSuite.java:136)
main javac dalvik-cts-buildutil build step failed
make: *** [out/host/darwin-x86/obj/EXECUTABLES/vm-tests_intermediates/tests] Error 1

Кажется, что размер кучи Java недостаточен.Я искал эту проблему в Google, который дал мне несколько ссылок, таких как:

На этих страницах в основном предлагается добавить параметр "-Xmx" в параметры JVM.Я попробовал следующее: Добавил этот столбец в /System/Library/Frameworks/JavaVM.framework/Versions/1.5.0-leopard/Resources/Info.plist"

VMOptions -Xms1024M -Xmx2048M

(я также попытался установить VMOptions.x86_64 вместо VMOptions).

Переходя по другой ссылке (osdir.com/ml/android-platform/2010-06/msg00097.html), ятакже изменил следующую строку в файле build / core / definitions.mk внутри каталога сборки Android.

$(hide) java -Xmx512M -jar $(HOST_OUT_JAVA_LIBRARIES)/proguard-4.0.1.jar \

на

$(hide) java -Xmx2048M -jar $(HOST_OUT_JAVA_LIBRARIES)/proguard-4.0.1.jar \

Ничто из перечисленного не помогло. У меня есть несколько вопросов:

  • Можно ли изменить размер кучи Java в масштабе всей системы в Mac OS X и это правильный путь? Если да, достигнет ли это изменение, которое я сделал в файле Info.plist?
  • Или мне нужно изменить размер кучи специально для сборки Android? Если да, то как мне это сделать?

Редактировать

Просто обновление: я пытался собрать Android 3.1 с JDK 1.6, и сборка прошла нормально (даже без васt установить опцию "-Xmx" для jdk 1.6).Я до сих пор не знаю, в чем проблема при сборке 2.1 с jdk 1.5.

Ответы [ 2 ]

0 голосов
/ 16 февраля 2015

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

dexOptions {

    javaMaxHeapSize "4g"

}

и посмотрите, поможет ли это.

см. Эту ссылку: https://groups.google.com/forum/#!topic/adt-dev/r4p-sBLl7DQ

0 голосов
/ 04 августа 2011

Иногда OutOfMemoryError не из-за дефицита Heap.Попробуйте увеличить PermGen:

-XX:PermSize=40m
-XX:MaxPermSize=240m

Иногда это также вызвано неправильными размерами Young и Ternured.А некоторые другие должны долгое время делать Full GC и собирать низкий процент.

С уважением.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...