如何通过Proguard(Android项目)将外部.jar排除在混淆之外?

当我用proguard.cfg导出android项目时,所有引用的.jar文件也会被混淆。 如何从混淆中排除一些.jars?

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

-keep class othercode.** { *; } 

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

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

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

在配置文件中,将jar设置为库jar而不是输入jar。 这使他们不受影响。

 -libjars  

使用proguard maven插件我这样做

  foo.bar foo-bar true !META-INF/**  

 true 

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