我有一个相对复杂的项目,每个应用程序需要两个风味维度。我在下面的示例中更简单地重写了它:
flavorDimensions "shape", "color"
productFlavors {
blue {
flavorDimension "color"
}
red {
flavorDimension "color"
}
green {
flavorDimension "color"
}
square {
flavorDimension "shape"
}
circle {
flavorDimension "shape"
}
我希望能够为每个变体设置不同的applicationId,例如:squareblue 将具有与circleblue 不同的applicationId。我无法在颜色维度中设置 applicationId,因为每个形状的 applicationId 都是相同的。在上面的例子中我需要有 6 个不同的 applicationId。这些 ID 也不遵循任何模式,它们可以是任何东西。
我在这里看到了答案:如何使用flavorDimensions为每种口味组合设置不同的applicationId?但这意味着我需要手动设置它,这对于我的项目来说是不可行的,因为变体的数量(1000个)。
我真正想做的是在颜色维度上设置两个 applicationid,然后在构建时根据形状维度选择正确的一个。我尝试过定义变量,但没有取得任何成功,它们只是被最后一个变体覆盖。
Gradle 有一个额外财产内置的,因此您无需定义类即可完成此操作。
看起来像这样,可能有一两个错字:
productFlavors {
blue {
flavorDimension "color"
ext.squareId = "yourAppId"
ext.circleId = "yourAppId"
}
android.applicationVariants.all { variant ->
def flavors = variant.getFlavors()
if (flavors[0].name.equals("square")){
variant.mergedFlavor.setApplicationId(flavors[1].ext.squareId)
} ...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)