当我使用proguard.cfg导出android项目时,所有引用的.jar文件也会被混淆。如何从混淆中排除一些.jars?
答案 0 :(得分:25)
如果您不想编辑Ant脚本,可以为这些外部jar中的类添加-keep选项到proguard.cfg。例如:
-keep class othercode.** { *; }
或者使用包含否定符的正则表达式:
-keep class !mycode.** { *; }
标准的Ant脚本仍将合并单个输出jar中的所有引用的jar。
答案 1 :(得分:6)
在配置文件中,将jar设置为库jar而不是输入jar。这使他们保持原状。
-libjars <path/to/jars>
答案 2 :(得分:1)
使用proguard maven插件我就是这样做的
<inclusion>
<groupId>foo.bar</groupId>
<artifactId>foo-bar</artifactId>
<library>true</library>
<filter>!META-INF/**</filter>
</inclusion>
在
<library>true</library>
混淆后导致外部jar合并到最后一个jar中。但这可能会导致Manifest被覆盖。我还没想出如何避免这种最佳方式。