我的应用程序 jar 包含 swing-layout.jar 中的类,其中包含 java 1.5 的免费布局管理器。在混淆过程中,我收到很多警告,例如
[proguard] 注意:org.jdesktop.layout.SwingLayoutStyle 访问字段 'INDE NT'动态 [proguard] 也许这是程序字段 'org.jdesktop.layout.LayoutStyl e { int 缩进; }'
我希望 proguard 单独保留 org.jdesktop 类,并摆脱我尝试过的警告
-keeppackagenames org.jdesktop.*
但是没有成功?
老问题,但是
-keep org.jdesktop.**
在 proguard 4.6 中不起作用 - 需要添加:
-keep class org.jdesktop.**
以防万一有人像我一样绊倒这个问题。
我想你想要,
-keep org.jdesktop.**
注意两颗星。来自文档:
* matches any part of a name not containing the package separator or directory separator.
** matches any part of a name, possibly containing any number of package separators or directory separators.
-keeppackagenames 只是保留...包名称!您需要 -keep,它可以保护 in 包中的事物名称。
如果您想省略特定包下的所有内容,您可以这样做
-keep class some.package.** { *; }
这将保留该包中的所有类以及所有字段和方法。