【发布时间】:2016-12-01 12:49:01
【问题描述】:
我的 AndroidManifest.xml 文件中有一些清单占位符
在build.gradle 中,我想根据我的风格和构建类型动态填充这些值。
我该怎么做?
我写了一个函数来做以下事情
def getKey() {
def KeyToReturn = ""
android.applicationVariants.all { variant ->
printout("getKey: ${variant.name}")
def flavor = "default";
if (variant.productFlavors.size() > 0)
flavor = variant.productFlavors.get(0);
def buildType = variant.buildType.name
if (buildType == "debug" || buildType == "staging") {
if (flavor.name == "one") {
KeyToReturn = test_key_1
}
if (flavor.name == "two") {
KeyToReturn = test_key_2
}
}
if (buildType == "release") {
if (flavor.name == "one") {
KeyToReturn = live_key_1
}
if (flavor.name == "two") {
KeyToReturn = live_key_2
}
}
}
printout("KeyToReturn:" + KeyToReturn)
return KeyToReturn
}
我的 android.defaultConfig 中有这个
defaultConfig {
minSdkVersion 15
targetSdkVersion 23
versionCode getVersionCode1()
versionName getVersionName1() + ""
manifestPlaceholders = [key: getKey()]
}
这是我的 AndroidManifest.xml 相关部分包含的内容
<meta-data
android:name="key"
android:value="${key}"/>
问题是当我查看构建的 AndroidManifest.xml 文件时 ${key} 值是一个空字符串。
如何正确填充此值?
【问题讨论】:
标签: android android-gradle-plugin