gpt4 book ai didi

android - 用于排除 Assets 文件夹的 Proguard/R8 规则

转载 作者:行者123 更新时间:2023-11-29 23:09:35 33 4
gpt4 key购买 nike

我的项目由主模块和其他模块依赖项组成。一种这样的依赖是“公共(public)”。在“commons”中有一个名为“flags”的 Assets 文件夹。

如果我们事先知道这个文件夹永远不会被使用,是否有办法编写混淆规则来排除这个特定的“标志”文件夹?

在我的项目中,主模块不使用专门针对此文件夹的“commons”模块中的任何代码,但它仍包含在最终包中。

最佳答案

R8 和 Proguard 都不能删除 Assets ,因为这些 Assets 甚至不会作为输入传递给这些工具。此外,即使它们是输入的一部分,查找 Assets 是否被使用也并非易事。出于同样的原因,R8 和 Proguard 不会删除 Java 资源(它们可能只会更改它们的路径/名称)。

您的问题的解决方案可能是在应用程序 build.gradle 文件中使用 DSL。即,如果您添加:

android {
aaptOptions {
ignoreAssetsPattern "<dir>flags"
}
}

最终的 APK 将不包含 flags 目录下的任何文件。请记住,此选项不是特定于变体的,所有应用程序变体(例如调试、发布)都不会包含这些 Assets 。

希望对您有所帮助。

关于android - 用于排除 Assets 文件夹的 Proguard/R8 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56163777/

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