Превышен лимит накладных расходов GC при попытке построить проект LibGDX

Я пытаюсь запустить проект LibGDX с конфигурацией iOS, но продолжаю сталкиваться со следующей ошибкой:

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':ios:launchIPhoneSimulator'.
> java.lang.OutOfMemoryError: GC overhead limit exceeded

Я попытался изменить файл gradlew со следующими параметрами, но я все еще получаю ту же ошибку:

DEFAULT_JVM_OPTS="-Xmx2048m -XX:+UseConcMarkSweepGC"

Любые идеи, что еще я могу сделать, чтобы обойти эту проблему? Спасибо!

4 ответа

Решение

Пробовал несколько разных вещей (чистить gradlew, удалять зависимости и загружать их снова, увеличивать размер кучи до 2g и т. Д.), Но в конечном итоге это исправляло перезагрузку машины.

Да, перезагрузка исправила это. Weird.

У меня была такая же проблема... но я нашел решение! Откройте файл "gradle.properties", и он должен выглядеть примерно так:

org.gradle.daemon=true
org.gradle.jvmargs=-Xms128m -Xmx512m
org.gradle.configureondemand=true

Вы должны отредактировать вторую строку! Измените "-Xms128m" на "-Xms1024m", "-Xmx512m" на "-Xmx4096m" и "gradle.properties" в конечном итоге должно выглядеть так:

org.gradle.daemon=true
org.gradle.jvmargs=-Xms1024m -Xmx4096m
org.gradle.configureondemand=true

Это оно!

Вы можете отключить эту ошибку, добавив следующий флаг: -XX:-UseGCOverheadLimit . Но это плохой подход.

Это исключение возникает тогда, когда FULL GC часто работает в последнюю минуту и ​​не освобождает память (или освобождает слишком мало памяти).

Вы можете попытаться добавить дополнительную память, например, попытаться добавить -Xmx3048m (или больше). Если исключение по-прежнему будет происходить, то определенно существует проблема утечки памяти.

Если вы не меняете свой код, но у вас внезапно возникает эта проблема, я предлагаю перезапустить Android Studio, очистить проект, перезагрузить эмулятор. Если нет, то измените код build.gradle.

Другие вопросы по тегам