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 *;
}

Имена общедоступных методов вообще не сохраняются:  введите описание изображения здесь

Может кто-нибудь подскажет, как это исправить?


person Hong    schedule 23.04.2019    source источник


Ответы (1)


Добавьте эту строку в gradle.properties

android.enableR8 = true

И попробуйте код ниже внутри вашего proguard-rules.pro

-keep public class ** {
    public *;
    protected *;

}

Изменить №1

Узнайте, как перенести Proguard на R8: Android / java: переход / переход с ProGuard на R8?

person shizhen    schedule 23.04.2019
comment
Большое спасибо. общедоступный *; защищенный *; сделал это. Остальные кажутся ненужными. - person Hong; 23.04.2019
comment
Нужна ли нам первая строка для включения R8? Я думал, что в новой версии android studio он включен по умолчанию. - person Nikos Hidalgo; 23.04.2019
comment
@NikosHidalgo Нет. У меня нет первой строки, и теперь она работает нормально. Думаю, вы правы - он по умолчанию включен начиная с Android Studio 3.4. - person Hong; 23.04.2019
comment
Это была ошибка, см. Issueetracker.google.com/131712625. Проблема исправлена ​​и будет частью Android Studio 3.4.1. - person sgjesse; 09.05.2019