proguard-rules.pro, похоже, не работает с R8
Сегодня я обновил свою Android Studio до версии 3.4 и впервые использую усадку по умолчанию R8. Я скопировал содержимое proguard-project.txt
библиотечного проекта к его proguard-rules.pro
, proguard-project.txt
работал безупречно для этого проекта, который генерирует файл AAR для использования другими проектами приложения.
файл proguard-rules.pro
похоже не используется. Проект имеет следующее в build.gradle
:
buildTypes {
release {
minifyEnabled true
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'),
'proguard-rules.pro'
signingConfig signingConfigs.Release
}
debug {
signingConfig signingConfigs.Debug
}
}
proguard-rules.pro
имеет следующее:
# Preserve all public classes, and their public and protected fields and methods.
-keep public class * {
public protected *;
}
Имена открытых методов вообще не сохраняются:
Кто-нибудь может предложить совет, как это исправить?
1 ответ
Добавить эту строку в gradle.properties
android.enableR8 = true
И попробуйте ниже код внутри вашего proguard-rules.pro
-keep public class ** {
public *;
protected *;
}
Редактировать #1
Проверьте здесь, как перенести Proguard на R8: Android / Java: переход / миграция с ProGuard на R8?