作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想用 ProGuard 混淆我的应用程序,我还希望一些内部类的成员保留他们的名字。这是因为我在 Jackson 中使用这些类来与 JSON 进行相互转换。我的来源:
// this class mainly serves as a container for a group of related inner classes
public class MyOuterClass
{
public class IDontWantToKeepThisClassName1
{
public String IWantToKeepThisName1;
public float IWantToKeepThisName2;
}
public class IDontWantToKeepThisName2
{
public IDontWantToKeepThisClassName1 IWantToKeepThisName3;
public float IWantToKeepThisName4;
}
}
我希望上面的代码是不言自明的。我试图通过 proguard-project.txt 中的这个命令来实现这一点
-keepclassmembernames class com.myapppackage.MyOuterClass$**
但是这不起作用。内部类成员仍然被混淆。测试各种选项并尝试猜测正确的选项或语法需要花费大量时间,因为每次更改都需要导出包以查看其是否有效。
最佳答案
我很确定像这样的东西应该可以解决问题:
-keepclassmembernames class com.myapppackage.MyOuterClass$** { *; }
所以请仔细检查。测试表明 { *; } 部分是必要的。虽然我无法解释为什么。请有识之士详细说说。
关于android - 如何配置 ProGuard 以保留内部类成员的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30217153/
我是一名优秀的程序员,十分优秀!