2014-12-09 2 views
4

Попытка запустить свой проект Gradle Android на circleci.com я получил следующее предупреждение:Android Круг Gradle Предупреждение: Билд виртуальные машины имеют предел памяти 4G

Внимание: Билд виртуальные машины имеют предел памяти 4G , Ваша сборка достигла этого предела для одного или нескольких контейнеров, и ваши результаты сборки скорее всего недействительны.

ответ

6

При использовании Gradle Wrapper вы можете установить DEFAULT_JVM_OPTS в gradlew, как это:

DEFAULT_JVM_OPTS="-Xmx512m" 

Установите его аналогичным образом в gradlew.bat если вы на Windows:

set DEFAULT_JVM_OPTS=-Xmx512m 

те рассказать JVM, чтобы ограничить размер кучи. вы можете протестировать разное распределение памяти для более быстрого времени компиляции.

P.S Это фактически сделало процесс компиляции локально на моей машине, чтобы не перекосить мой процессор. более медленная компиляция, но более быстрая реакция ОС.

12

В GRADLE_OPTS могут быть установлены в файле circle.yml:

machine: 
    environment: 
    GRADLE_OPTS: -Xmx512m -XX:MaxPermSize=512m 

позволяет сохранить конфиги развития и построить конфиги отдельно.

Edit:

CircleCi обновили их documentation, это рекомендуемая конфигурация для Android сборки:

machine: 
    environment: 
    GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx2048m -XX:+HeapDumpOnOutOfMemoryError"' 
+0

Это установка ht подход. Я не хочу, чтобы проблемы кругов вступали в мой dev config. –

+0

см. -> https://circleci.com/docs/oom/#out-of-memory-errors-in-android-builds – CrandellWS

2

Иногда вам нужно установить оба Gradle опции и опции Java, так как некоторые библиотеки NewRelic не использует jvm из переменной опций gradle и не нуждается в опциях java options

machine: 
    environment: 
    GRADLE_OPTS: '-Dorg.gradle.jvmargs="-Xmx512m -XX:+HeapDumpOnOutOfMemoryError"' 
    _JAVA_OPTIONS: "-Xms512m -Xmx1024m" 
Смежные вопросы