Превышено предельное значение GC при включении R8 Shrinker
Я использую Android Studio 3.4 Canary 9, при сборке приложения произошла ошибка со следующей ошибкой
Задача:app:transformClassesAndResourcesWithR8ForDebug
R8 - экспериментальная особенность. Если у вас возникли какие-либо проблемы, отправьте сообщение об ошибке на https://issuetracker.google.com/, используя в качестве имени компонента "Shrinker (R8)". Вы можете отключить R8, обновив gradle.properties с помощью 'android.enableR8 = false'.
AGPBI: {"kind": "warning", "text": "Отсутствует класс: java.lang.instrument.ClassFileTransformer","sources":[{}],"tool":"D8"}
Задача:app:transformClassesAndResourcesWithR8ForDebug FAILED
FAILURE: сборка не удалась, исключение.
- Что пошло не так: выполнение задачи не выполнено:app:transformClassesAndResourcesWithR8ForDebug.
Превышен лимит накладных расходов GC
Когда я отключаю R8, поставив android.enableR8=false
в gradle.properties. Все работает нормально.
Так как я могу исправить эту ошибку без отключения R8 Shrinker? Потому что я действительно хочу проверить функциональность R8.
2 ответа
Как вы сказали, вы не используете какой-либо пользовательский jvs arg, попробуйте.
В вашем gradle.properties
В файле попробуйте несколько значений для настроек памяти. Например попробуйте установить
org.gradle.jvmargs=-XX\:MaxHeapSize\=2048m -Xmx4608M
Как предложено в разделе комментариев:
Задает аргументы JVM, используемые для процесса демона.
Эта настройка особенно полезна для настройки параметров памяти.
org.gradle.jvmargs = -Xmx1536m
Я использовал R8 в своем проекте, и все работало нормально.
Иногда добавление кучи памяти JVM не решает проблему, особенно в системах с ограниченным объемом памяти, оно вызывает другие проблемы. я рекомендую попробовать заменить сборщик мусора.
org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+UseConcMarkSweepGC
Превышение предела накладных расходов сборщика мусора - это выброс исключения по умолчанию сборщик мусора java 8 (параллельный). В моем случае это решило проблемы.