Как я могу отладить R8 во время компиляции? - PullRequest
0 голосов
/ 09 апреля 2019

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

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

Ответы [ 2 ]

2 голосов
/ 09 апреля 2019

Предполагая, что у вас получен проект 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 перед запуском Gradle, например, для сборки сборки проекта Android Studio, укажите параметры -Dorg.gradle.debug=true и --no-daemon:

./gradlew assembleRelease -Dorg.gradle.debug=true --no-daemon

Команда gradle будет ожидать командуотладчик для присоединения. В IntelliJ создайте стандартную конфигурацию удаленной отладки и присоедините. Команда gradle продолжит работу, и в коде R8 будут достигнуты точки останова.

ПРИМЕЧАНИЕ.r8.jar до build.gradle может вызвать проблемы для проектов Kotlin (см. Issue 129240946 ).

0 голосов
/ 09 апреля 2019

Для усадки R8 можно добавить переключатель -verbose в файл proguard.cfg. есть вариант:

--pg-conf proguard.cfg

Это build.gradle также показывает, как можно установить значение по умолчанию proguardArguments.

...