适当的Proguard配置,以保持静态内部类

Tac*_*0sS 7 java android proguard inner-classes

我有以下内容:

public class A extends B {
    static class C {
        Object field1;
        int field2;
        boolean field3;
    }
}
Run Code Online (Sandbox Code Playgroud)

无法通过反射拿到C级!

我尝试过以下方法:

-keep class com.path.to._class.A$** {*;}

-keep class com.path.to._class.A$* {*;}

-keep class com.path.to._class.A$C {*;}

-keep class com.path.to._class.A$C {
    <fields>;
}

-keep class com.path.to._class.A$C {
    Object field1;
    int field2;
    boolean field3;
}
Run Code Online (Sandbox Code Playgroud)

以上都没有奏效.我在这里做错了吗?

也许值得一提的是B扩展了View ......

Eri*_*une 5

所有这些都应该工作(只有Object - > java.lang.Object).您可以检查bin/proguard/seeds.txt以查看它们是否已列出.否则,您可能正在修改错误的配置文件,或者名称中可能存在拼写错误.