-keepInnerClass
标志确实保留了内部类。
但是,无论内部类是否是静态的,如何丢失信息。
这是因为我的原始代码显示警告内部类应该是静态的,但是在混淆之后它不会这样做。我是否必须添加更多标志。
答案 0 :(得分:1)
您应该尝试更新到最新版本的ProGuard。在撰写本文时,我们的版本是4.10。
正确的选项实际上是-keepattributes InnerClasses
。
您可以通过检查-dump
选项(带有可选文件名)的输出来检查是否为内部类设置了静态标志,例如
.....
Class file attributes (count = 1):
- Inner classes attribute (count = 1)
- InnerClassesInfo:
Access flags: 0xa = private static
- Class [test0023/Test$a]
- Class [test0023/Test]
- Utf8 [a]
.....