java - Proguard - 保留所有类和方法名称,但混淆字段

标签 java proguard obfuscation

我试图保留所有类和方法的名称,但混淆了我项目中的所有字段。

例如,这段代码:

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

    void myMethod() {
        // Method code;
    }
}

应该变成这段代码

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

    void myMethod() {
        // Obfuscated method code;
    }
}

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

我猜它是 keepnameskeepclassmembernames 的某种组合,但我不确定哪个是正确的。

最佳答案

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

-keep class MyClass
-keepclassmembers class MyClass  {
    public <methods>;  
}  

关于java - Proguard - 保留所有类和方法名称,但混淆字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32309171/

相关文章:

javascript - 闭包编译器 : How to separate and control compilation/minification passes?

Java for 循环输出不显示我想要的方式

android - Proguard 不会混淆 Assets (怎么做?)

android - 我的日志消息未使用混淆器配置删除

android - 在构建我的应用程序的发布版本时,我应该保留 android.support.v4.app.Fragment 及其派生类吗?

javascript - PhoneGap 源安全

java - rx-java2 flatMap 中的空处理

java - 结果集中的基本编程 JTable 模型

java - Hibernate实体生成奇怪的sql并尝试保存重复的条目

java - Proguard:将类成员保留在命名空间内