gpt4 book ai didi

android - 在 Android 中使用 Build-specific aaptOptions(用于排除特定的 Assets 文件/文件夹)

转载 作者:行者123 更新时间:2023-12-04 17:37:37 28 4
gpt4 key购买 nike

一直在开发一个 Android Webview 应用程序,我才刚刚开始在其中使用 node_modules 文件夹,所以我自然地对如何排除它进行了一些研究,最后我找到了 this question here

尝试了一些答案,实际上最适合我的答案是 the one about aaptOptions

所以我当然很自然地在玩它,试图弄清楚什么是有效的,并且我成功地从调试 apk 中排除了一些文件夹。

            aaptOptions {
ignoreAssetsPattern '!node_modules:!jsunmin:!.idea:!jade:!css-scss:'
}

而且我确实可以确认这些文件夹不包含在 Android Studio 的最终 APK 中!成功!

所以后来我意识到我可以做一些聪明的事情:当我运行我的应用程序时,在我的端测试它,调试它,我喜欢在某些地方自动放入某些凭据 - 我用 javascript 做这个 - 但是显然,我不希望这些凭据包含在我可能发送给世界的 APK 中——即使我已经对其进行了编码,除非我正在调试,否则不会自动输入凭据,但这些凭据实际上仍然在 javascript 文件中,大概有人可以进去看看!

所以我的想法是创建一个文件“example-creds.js”,并使用 aaptOptions 不包含该文件,仅在发布版本中,所以我想出了一些看起来像这样的东西(去除了额外的细节):
android {
buildTypes {
release {
aaptOptions {
ignoreAssetsPattern '!node_modules:!jsunmin:!.idea:!jade:!css-scss:!example-creds.js:'
}
}

debug {
aaptOptions {
ignoreAssetsPattern '!node_modules:!jsunmin:!.idea:!jade:!css-scss:'
}
}
}
}

但它不起作用! 我已经对其进行了测试,无论构建类型如何,它似乎都可以运行最后定义的 aaptOptions 。如果我在调试后发布,我在任何一个构建中都没有获得示例信用。如果我在发布后进行调试,我会在两者中都获得 example-creds。

我怎样才能得到我正在寻找的东西?

最佳答案

一般应该可以配置AaptOptions与任何其他配置 block 一样。尝试运行该脚本afterEvaluate (这是在评估了 aaptOptions 之后):

task afterEvaluate {
doLast {
applicationVariants.all { variant ->
variant.outputs.all { output ->
def pattern = "!node_modules:!jsunmin:!.idea:!jade:!css-scss:"
if(variant.getBuildType().getName() == 'release') {
pattern = pattern + "!example-creds.js:"
}
aaptOptions.ignoreAssetsPattern = pattern
}
}
}
}

关于android - 在 Android 中使用 Build-specific aaptOptions(用于排除特定的 Assets 文件/文件夹),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56075155/

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