Превышен лимит накладных расходов 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.