【问题标题】:How to exclude this particuar class from ProGuard obfuscation如何从 ProGuard 混淆中排除这个特定的类
【发布时间】:2026-02-15 03:55:01
【问题描述】:

我想排除这个类被 ProGuard 混淆

- com.example.myapp.ThisParticularClass.java

我该怎么做?

我查看了其他答案,但它们是关于包、类成员或使用 gson 注释的

PS:如果ThisParticularClass 从另一个类扩展,我是否也应该让父类不被混淆?

【问题讨论】:

    标签: android proguard


    【解决方案1】:

    使用这样的语句:

    -keep class com.example.myapp.ThisParticularClass
    

    或:

    -keep public class * extends com.example.myapp.ThisParticularClass
    

    【讨论】:

    • 我也应该添加keepclassmembers 吗?那是做什么用的?我还应该保护父类吗?
    • 记住proguard 可能会做什么。例如,它可能会用随机值替换您的 String 常量。 keepclassmembers 可以防止这种情况。 -keepattributes 也很有用,当您按名称使用反射和访问方法时。每个案例都应单独处理和测试。 Here 是属性的文档。至于父类:我会保护它,但如果你真的需要它,没有什么可以阻止你自己检查它。