我尝试防止包含属性的类混淆 任何成员上的@com.evernote.android.state.State
为此,我添加了我的规则:
-keepclasseswithmembernames class * { @com.evernote.android.state.State *;}
而且它不起作用。类被混淆
但如果指定更具体的条件:
-keepclasseswithmembernames class * { @com.evernote.android.state.State <fields>;}
效果很好!
有人可以澄清为什么第一个变体不起作用吗?
Build-gradle 版本为 3.1.2
最佳答案
仅当所有指定成员匹配时,规则-keepclasseswithmembernames
才会匹配。如果您使用像 *
这样的通配符,那么所有字段和方法都必须被注释,但情况可能并非如此。
如果您仅匹配字段,那么它将起作用。
关于android - 尽管使用 -keepclasseswithmembernames,Proguard 仍然混淆了类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50696887/