Proguard - 保留所有类和方法名称,但混淆了Fields

Dan*_*nny 6 java obfuscation proguard

我试图保留所有类和方法名称,但模糊了我项目中的所有字段.

例如,这段代码:

public class MyClass {
    private int    myInt;
    public String  myString;

    void myMethod() {
        // Method code;
    }
}
Run Code Online (Sandbox Code Playgroud)

应该变成这个代码

public class MyClass {
    private int    a1;
    public String  a2;

    void myMethod() {
        // Obfuscated method code;
    }
}
Run Code Online (Sandbox Code Playgroud)

请注意,类名称和方法名称不会被混淆,但字段名称会混淆.

我猜这是keepnames和某种结合keepclassmembernames,但我不确定什么是正确的.

lor*_*cel 2

如果您可以向要保留的方法添加访问修饰符,请尝试以下操作,例如您想保留所有公共方法。

-keep class MyClass
-keepclassmembers class MyClass  {
    public <methods>;  
}  
Run Code Online (Sandbox Code Playgroud)