如何在使用多个 classes 相关 classes 时防止 class 成员混淆?

How to prevent class member obfuscation when using multiple classes related classes?

我的项目中有以下位置:

package com.example.data

我放了四个 类,A、B、C 和 D,如下所示:

public class A {
    public List<B> bList = new ArrayList<>();
}

public class B {
    public List<C> CList = new ArrayList<>();
}

public class C {
    public D d;
}

public class D {
    public String s;
}

现在,在我的 ProGuard 中,我可以添加如下内容:

-keepclassmembers class com.example.data.data.A{*;}
-keepclassmembers class com.example.data.data.B{*;}
-keepclassmembers class com.example.data.data.C{*;}
-keepclassmembers class com.example.data.data.D{*;}

但是有没有更简单的方法可以避免我的 类 配置中的混淆?

您可以给package级规则。所以这个包下的所有classes都不会是obfuscated。在您的 proguard 规则文件中,例如在 proguard-common.pro 文件中,添加以下代码。

-keep class com.example.data.** { *; }