25

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

4

3 回答 3

25

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

-keep class othercode.** { *; }

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

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

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

于 2010-12-22T00:05:48.547 回答
5

在您的配置文件中,将您的 jar 设置为库 jar 而不是输入 jar。这使他们保持原状。

-libjars <path/to/jars>
于 2010-12-17T23:01:04.163 回答
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 被覆盖。我还没有想出如何避免这种最好的方法。

于 2013-01-18T15:55:48.437 回答