我正在研究一种多味产品。我希望能够在每种风格的清单中禁用和启用组件。我已经能够通过以下方式从bool.xml文件到AndroidManifest.xml创建这样的依赖:
<activity
android:name=".ui.activities.SpecialActivity"
android:enabled="@bool/is_activity_enabled_in_manifest"/>
我可以从build.gradle到AndroidManifest.xml创建相同的依赖项吗?
答案 0 :(得分:2)
基本上,您在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" ]
}
}
}
}
上面的代码段取自this问题。