当我将以下“保留”规则放入我的 proguard 配置中时:
-keepclasseswithmembernames class ** implements com.my.package.MyInterfaceName { <fields>; }
起初,似乎我所有实现 MyInterfaceName 的类都保持其类名和字段不变。
但实际上在运行时,这些类使用 getSimpleName() 返回不同的简单名称。
以此为例:
public class Foo {
public enum Bar implements MyInterfaceName { X, Y, Z }
}
X.getClass().getSimpleName()
返回Foo$Bar
而不是只Bar
返回没有被proguard处理的。