proguard-rules.pro似乎不适用于R8

时间:2019-04-23 02:40:29

标签: android android-proguard r8 android-r8

我今天早些时候将Android Studio升级到了3.4,并且我第一次使用默认的收缩器R8。我将库项目proguard-project.txt的内容复制到了proguard-rules.proproguard-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 *;
}

完全不保留公共方法的名称: enter image description here

任何人都可以提供有关如何解决此问题的提示吗?

1 个答案:

答案 0 :(得分:3)

将此行添加到gradle.properties

android.enableR8 = true

并尝试在proguard-rules.pro

中使用以下代码
-keep public class ** {
    public *;
    protected *;

}

编辑#1

在此处查看如何将Proguard迁移到R8:Android/java: Transition / Migration from ProGuard to R8?