java - Proguard 混淆包不包括扩展/实现某些接口(interface)/类的类

标签 java proguard

我想混淆一切,但保留类名,因为 Dagger 。然后我想混淆实现某些接口(interface)的类。

-keep class com.example.** { <init>(...); }
-keep,allowobfuscation class * implements com.example.util.SomeInterface
-keep,allowobfuscation class * extends com.example.data.SomeClass

第一部分将类名与模糊内容保持在一起效果很好。但实现 SomeInterface 或扩展 SomeClass 的类名仍然可见。

这可能吗?

最佳答案

ProGuard 保留您在指令中指定的类/字段/方法的并集。如果一个类与您的第一个指令匹配,ProGuard 会保留它,而不管任何其他指令。您可能想要根据类名称之外的一些其他标准来优化第一行。

关于java - Proguard 混淆包不包括扩展/实现某些接口(interface)/类的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22179579/

相关文章:

java - EJB3 无状态 session Bean 是否允许继承?

java - 如何配置 Proguard 以保持具有不同返回时间的静态方法

java - 注意 : com. google.common.cache.Striped64 动态访问声明的字段 'base'

android - Android Plugin for Gradle 中的 "minifyEnabled"和 "useProguard"有什么区别?

java - 是否有一些轻量级技术可以为标识符属性添加类型安全?

javascript - 从 Spring Boot 转发到特定的 Angular 组件

android - 在 Android 中实现 Proguard 抛出错误 Gson

android - 如何自动生成proguard-android.txt?

java - 从 JFormattedTextField 获取原始、未格式化、未屏蔽的文本

java - JPA by Object 在对象中使用非@Id 的属性