如何从Proguard(Android项目)的混淆中排除外部.jar?

当我使用proguard.cfg导出android项目时,所有被引用的.jar文件也被模糊处理。 我怎样才能从混淆中排除一些.jars?

Solutions Collecting From Web of "如何从Proguard(Android项目)的混淆中排除外部.jar?"

如果您不想编辑Ant脚本,则可以为这些外部jar中的类添加-keep选项给proguard.cfg。 例如:

-keep class othercode.** { *; } 

或者使用包含否定符的正则expression式:

 -keep class !mycode.** { *; } 

标准的Ant脚本仍然会合并单个输出jar中的所有引用的jar。

在你的configuration文件中,将你的jar子设置为库坛而不是inputjar子。 这使他们不受影响。

 -libjars <path/to/jars> 

使用proguard maven插件我这样做

 <inclusion> <groupId>foo.bar</groupId> <artifactId>foo-bar</artifactId> <library>true</library> <filter>!META-INF/**</filter> </inclusion> 

 <library>true></library> 

导致混淆后将外部jar合并到最终的jar中。 但这可能会导致清单被覆盖。 我还没有想出如何避免这种最好的方法。