我希望能够仅使用 proguard 来混淆类的子集,但是我遇到了困难,因为 proguard 似乎主要是为了混淆除黑名单之外的所有内容而设计的。
但是,proguard manual确实说:
For additional flexibility, class names can actually be comma-separated lists of class names, with optional ! negators, just like file name filters. This notation doesn't look very Java-like, so it should be used with moderation.
但没有这样的例子。
我正在尝试这个:
-keep class !**.licence.** {*;}
-keep class !**.*Licence*.** {*;}
但这确实有效。如果我删除 !
,模式本身就会起作用(除上述之外,其他所有内容都会被混淆)。我也尝试过使用方法定义({*;}
已删除),但仍然不起作用。
有人有类名否定符的例子吗?是否有另一种方法告诉 proguard 仅混淆特定的类/包模式(不使用代码内注释)?
最佳答案
我终于自己弄清楚了。否定必须全部在一行上,如下所示:
-keep class !ca.nanometrics.**.licence.**,!ca.nanometrics.**.*Licence*{*;}
关于java - 如何使用 Proguard 否定类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29474822/