Как я могу отлаживать R8 во время компиляции?

Есть ли способ отлаживать R8 во время компиляции проекта Android?

У меня действительно странная ошибка, и случайное исправление не поможет.

1
0
1 269
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Для уменьшателя 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).

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