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?

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