尽管-keepclasseswithmembernames,Proguard仍然会对类进行模糊处理

时间:2018-06-05 09:38:05

标签: android proguard android-proguard

我尝试防止对包含属性的类进行模糊处理 任何成员的@ 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

1 个答案:

答案 0 :(得分:1)

仅当所有指定的成员都匹配时,规则-keepclasseswithmembernames才会匹配。如果使用像*这样的通配符,则必须注释所有字段和方法,但情况可能并非如此。

如果您只匹配字段,那么它将起作用。