gpt4 book ai didi

android - 如何从发布的 APK 中排除库 JAR 中包含的非类文件?

转载 作者:行者123 更新时间:2023-11-30 01:52:51 25 4
gpt4 key购买 nike

我正在使用 gradle 构建 APK 文件,并让 proguard 压缩和混淆我的代码。我使用的一个外部库包含一些我不需要但最终出现在我的最终 APK 文件中的 *.so 文件。

我想应该可以告诉混淆器忽略这些文件,但是怎么做呢?

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 构建中使用混淆器时,我们不会像这些示例中那样自己指定输入和输出。相反,gradle 可能会告诉 proguard 要处理哪些 JAR 以及将结果写入何处。所以配置文件中没有地方放

(!images/**)

声明。

我希望工作的是一个类似于这个的选项:

-stripfiles !images/**

最佳答案

好吧,终于通过这个问题找到了解决办法: Android Gradle plugin 0.7.0: "duplicate files during packaging of APK"

通过添加可以排除任意文件被打包到APK中

android {
packagingOptions {
exclude 'path/to/file/to/be/ignored.so'
}
}

build.gradle 文件。

不幸的是,它似乎不支持正则表达式。

关于android - 如何从发布的 APK 中排除库 JAR 中包含的非类文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32743359/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com