具有风味的 ext 变量不适用于多维
ext variables with flavor doesn't work with multiple dimension
我的结构与下面的代码相同,我想为 applicationId 加上不带点的前缀和后缀,并在 gradle 文件的末尾使用 applicationId 值。
我不想使用 applicationIdSuffix,因为它会自动添加点,而且我无法在 gradle 上获得它的值,也无法获得完整的 applicationId。
flavorDimensions "type", "version"
productFlavors.all {
ext.appIdPrefix = "com.example"
ext.appId = ""
ext.appIdSuffix = ""
}
productFlavors {
flavor1 {
dimension "type"
appId = ".flavor1"
}
full {
dimension "version"
appIdSuffix = "Full"
}
}
productFlavors.all {
applicationId appIdPrefix + appId + appIdSuffix
}
现在,当我 运行 我的应用 "flavor1full" 时,applicationId 仅为 "com.exmaple.flavor1",并且没有获得 appIdSuffix
的值
我该如何解决?
假设您的最终目标是使用不同的应用 ID 构建不同的应用风格,您应该能够使用如下内容:
flavorDimensions "type"
productFlavors.all {
ext.appIdPrefix = "prefix"
ext.appId = "hello.world"
}
productFlavors {
partial {
dimension "type"
ext.appIdSuffix = "suffix1"
}
full {
dimension "type"
ext.appIdSuffix = "suffix2"
}
}
productFlavors.all {
applicationId appIdPrefix + "." + appId + "." + appIdSuffix
}
以上将根据所选的构建变体生成以 suffix1 或 suffix2 结尾的应用程序 ID。不确定我是否理解您为什么需要另一个维度。
不要为每种口味更改应用 ID,而是尝试迭代 applicationVariants:
applicationVariants.all { variant ->
def flavors = variant.productFlavors
variant.mergedFlavor.applicationId = flavors[0].appId + flavors[1].appIdSuffix ;
}
由于有两种构建类型,这将遍历每种风格的组合两次。另见 Multi-Dimension Flavor ApplicationId
另请注意您问题中的错字:appIdSuffix "Full"
应为 appIdSuffix="Full"
我的结构与下面的代码相同,我想为 applicationId 加上不带点的前缀和后缀,并在 gradle 文件的末尾使用 applicationId 值。
我不想使用 applicationIdSuffix,因为它会自动添加点,而且我无法在 gradle 上获得它的值,也无法获得完整的 applicationId。
flavorDimensions "type", "version"
productFlavors.all {
ext.appIdPrefix = "com.example"
ext.appId = ""
ext.appIdSuffix = ""
}
productFlavors {
flavor1 {
dimension "type"
appId = ".flavor1"
}
full {
dimension "version"
appIdSuffix = "Full"
}
}
productFlavors.all {
applicationId appIdPrefix + appId + appIdSuffix
}
现在,当我 运行 我的应用 "flavor1full" 时,applicationId 仅为 "com.exmaple.flavor1",并且没有获得 appIdSuffix
的值我该如何解决?
假设您的最终目标是使用不同的应用 ID 构建不同的应用风格,您应该能够使用如下内容:
flavorDimensions "type"
productFlavors.all {
ext.appIdPrefix = "prefix"
ext.appId = "hello.world"
}
productFlavors {
partial {
dimension "type"
ext.appIdSuffix = "suffix1"
}
full {
dimension "type"
ext.appIdSuffix = "suffix2"
}
}
productFlavors.all {
applicationId appIdPrefix + "." + appId + "." + appIdSuffix
}
以上将根据所选的构建变体生成以 suffix1 或 suffix2 结尾的应用程序 ID。不确定我是否理解您为什么需要另一个维度。
不要为每种口味更改应用 ID,而是尝试迭代 applicationVariants:
applicationVariants.all { variant ->
def flavors = variant.productFlavors
variant.mergedFlavor.applicationId = flavors[0].appId + flavors[1].appIdSuffix ;
}
由于有两种构建类型,这将遍历每种风格的组合两次。另见 Multi-Dimension Flavor ApplicationId
另请注意您问题中的错字:appIdSuffix "Full"
应为 appIdSuffix="Full"