gpt4 book ai didi

android - Manifest 值能否依赖于 build.gradle 文件

转载 作者:行者123 更新时间:2023-11-29 19:20:53 28 4
gpt4 key购买 nike

我正在开发一种多口味产品。我希望能够根据口味在 list 中禁用和启用组件。我已经能够通过以下方式创建从 bool.xml 文件到 AndroidManifest.xml 的这种依赖关系:

<activity
android:name=".ui.activities.SpecialActivity"
android:enabled="@bool/is_activity_enabled_in_manifest"/>

我能否创建从 build.gradle 到 AndroidManifest.xml 的相同依赖项?

最佳答案

看看Manifest Placeholders .

基本上,您在 gradle 文件中指定变量:

android {
defaultConfig {
manifestPlaceholders = [hostName:"www.example.com"]
}
...
}

然后从AndroidManifest.xml

中引用它们
<intent-filter ... >
<data android:scheme="http" android:host="${hostName}" ... />
...
</intent-filter>

在您的情况下,这可能适用:

android {
defaultConfig {
manifestPlaceholders = [ isActivityEnabled:"true" ]
}

buildTypes{
debug{
// Some debug setup
}
release{
// Some release setup
}
}

productFlavors {
// List of flavor options
}
productFlavors.all{ flavor->
if (flavor.name.equals("someFlavor")) {
if (buildType.equals("release")) {
manifestPlaceholders = [ isActivityEnabled:"false" ]
} else {
manifestPlaceholders = [ isActivityEnabled:"false" ]
}
} else {
if (buildType.equals("release")) {
manifestPlaceholders = [ isActivityEnabled:"true" ]
} else {
manifestPlaceholders = [ isActivityEnabled:"true" ]
}
}
}
}

上面的 fragment 摘自this问题。

关于android - Manifest 值能否依赖于 build.gradle 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42511808/

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