Есть ли способ отлаживать R8 во время компиляции проекта Android?
У меня действительно странная ошибка, и случайное исправление не поможет.
Для уменьшателя R8
можно добавить переключатель -verbose
в файл proguard.cfg
. есть вариант:
--pg-conf proguard.cfg
Это build.gradle также показывает, как можно поставить proguardArguments
по умолчанию.
Предполагая, что у вас есть проект R8 (из https://r8.googlesource.com/r8) и вы используете IntelliJ в качестве отладчика, это способ отладки Gradle, создающего проект Android Studio.
Первая сборка r8:
tools/gradle.py r8
r8.jar
встроен в build/libs
и затем должен быть указан в основном файле build.gradle
(в разделе buildscript.repositories
) следующим образом:
buildscript {
dependencies {
classpath files($PATH_TO_R8_JAR) // Must be before the Gradle Plugin for Android.
classpath 'com.android.tools.build:gradle:3.4.0-rc03'
}
}
Чтобы отладить запуск Gradle из командной строки, передайте параметры -Dorg.gradle.debug=true
и --no-daemon
при вызове Gradle, например. для выпуска сборки проекта Android Studio:
./gradlew assembleRelease -Dorg.gradle.debug=true --no-daemon
Команда gradle будет ждать подключения отладчика. В IntelliJ создайте стандартную конфигурацию удаленной отладки и подключите ее. Команда gradle будет продолжена, и точки останова в коде R8 будут срабатывать.
ПРИМЕЧАНИЕ. Для ряда выпусков aplha 3.5.0 добавление r8.jar
к build.gradle
может вызвать проблемы для проектов Kotlin (см. Выпуск 129240946).