gpt4 book ai didi

android - Gradle 构建类型或风格哪个优先?

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:37 25 4
gpt4 key购买 nike

假设我在两个级别都定义了一个常量:在构建类型中我将其设置为“mybuild”,在风格中我将其设置为“myflavor”。

比如这里:

buildTypes {
debug {
resValue "string", "analytics_key", "XXX_SANDBOX_KEY_XXX"
}
}

productFlavors {
appA {
resValue "string", "analytics_key", "XXX_KEY_FOR_A_XXX"
}
appB {
resValue "string", "analytics_key", "XXX_KEY_FOR_A_XXX"
}
}

我想将不同应用程序(即风格)的事件发送到我的分析平台中的不同帐户。但是,如果我正在调试,我想将它们全部发送到我的沙箱帐户。

最初的问题是:哪个优先?根据我的测试,我已经可以回答这个问题:构建类型中的那个。

然而,更有趣的是:这是有保证的吗?

(或者,有更好的方法吗?)

最佳答案

is this guaranteed?

对于同一级别的事物(例如,同一模块),构建类型通常被认为比产品风格具有更高的优先级。引用 the documentation :

Usually, the Build Type configuration is an overlay over the other configuration. For instance, the Build Type's packageNameSuffix is appended to the Product Flavor's packageName.

不过, list 合并相当复杂,需要 its own set of docs .

在您的例子中,您正在创建资源。在这种情况下,它应该遵循与将这些值作为字符串资源放入相关源集中相同的规则:

All resources (Android res and assets) are used using overlay priority where the Build Type overrides the Product Flavor, which overrides the main sourceSet.

如果 resValue 的行为开始与使用源集的等效行为不同,我会认为这是一个错误。

关于android - Gradle 构建类型或风格哪个优先?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28745132/

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