#android #android-r8 #android-d8
#Android #android-r8 #android-d8
Вопрос:
Есть ли какой-либо способ отладки R8 во время компиляции проекта Android?
У меня действительно странная ошибка, и случайное исправление не поможет
Ответ №1:
Предполагая, что у вас есть извлеченный проект 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 run передайте параметры -Dorg.gradle.debug=true
и --no-daemon
при вызове Gradle, например, для сборки выпуска проекта Android Studio:
./gradlew assembleRelease -Dorg.gradle.debug=true --no-daemon
Команда gradle будет ждать подключения отладчика. В IntelliJ создайте стандартную конфигурацию удаленной отладки и присоедините. Команда gradle будет продолжена, и будут достигнуты точки останова в коде R8.
ПРИМЕЧАНИЕ: для ряда выпусков 3.5.0 aplha добавление r8.jar
в build.gradle
может вызвать проблемы для проектов Kotlin (см. Выпуск 129240946).
Ответ №2:
Для R8
сжимателя можно добавить -verbose
переключатель в proguard.cfg
файл. есть вариант:
--pg-conf proguard.cfg
Это build.gradle также показывает, как proguardArguments
можно указать значение по умолчанию.