说我有以下build.gradle
android{
defaultConfig{
applicationId "com.example.base"
}
buildTypes{
release{
minifyEnabled true
}
debug{
applicationIdSuffix ".dev"
minifyEnabled false
}
}
productFlavors{
free{
applicationId "com.example.free"
}
paid{
applicationId "com.example.paid"
}
}
}
我想将生成的应用程序ID添加到strings.xml中,如下所示:
resValue "string", "app_package", applicationId
因此,我可以在首选项xml
中定义的意图targetPackage
中使用此值
但是值的变化取决于我将该行放在哪个块中:
通过使用applicationIdSuffix,我需要gradle来解析最终的id才能使用它。我该怎么做?
答案 0 :(得分:5)
在productFlavors
DSL中android
之后添加此内容:
applicationVariants.all { variant ->
variant.resValue "string", "app_package", variant.applicationId
}
在freeDebug
版本中,这将添加到app/intermediates/res/merged/free/debug/values/values.xml
:
<string name="app_package" translatable="false">com.example.free.dev</string>
在paidDebug
:
<string name="app_package" translatable="false">com.example.paid.dev</string>