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

Hon*_*ong 4 android android-proguard android-r8 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
        }
    }
Run Code Online (Sandbox Code Playgroud)

proguard-rules.pro 具有以下内容:

# Preserve all public classes, and their public and protected fields and methods.
-keep public class * {
    public protected *;
}
Run Code Online (Sandbox Code Playgroud)

公用方法的名称根本不保留: 在此处输入图片说明

谁能提供解决此问题的技巧?

shi*_*hen 5

将此行添加到 gradle.properties

android.enableR8 = true
Run Code Online (Sandbox Code Playgroud)

并尝试下面的代码 proguard-rules.pro

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

}
Run Code Online (Sandbox Code Playgroud)

编辑#1

在此处查看如何将Proguard迁移到R8:Android / java:从ProGuard迁移/迁移到R8?

  • 非常感谢。上市 *; 受保护的*; 做到了。其他似乎没有必要。 (2认同)