【发布时间】:2015-09-23 15:14:13
【问题描述】:
我正在使用 gradle 构建 APK 文件,并让 proguard 缩小和混淆我的代码。我使用的一个外部库包含一些我不需要但最终出现在我的最终 APK 文件中的 *.so 文件。
我想应该可以告诉 proguard 忽略这些文件,但是如何呢?
proguard (http://proguard.sourceforge.net/manual/usage.html#filters) 的文档解释了如何使用过滤器,例如这是如何避免重复 MANIFEST 文件的错误:
-injars in1.jar
-injars in2.jar(!META-INF/MANIFEST.MF)
-injars in3.jar(!META-INF/MANIFEST.MF)
-outjars out.jar
我们还可以根据文件名和模式进行过滤:
-injars in.jar(!images/**)
-outjars out.jar
这将是完美的,假设我想完全按照第二个示例执行操作,并从我的一个 jar 中删除“图像”目录中的所有内容。
问题是,在 Android 项目的 gradle 构建中使用 proguard 时,我们没有像这些示例中那样自己指定输入和输出。相反,gradle 可能会告诉 proguard 要处理哪些 JAR 以及将结果写入何处。所以配置文件中没有地方放
(!images/**)
声明。
我期望工作的是一个类似于这个的选项:
-stripfiles !images/**
【问题讨论】: