Dav*_*ott 8 groovy android gradle android-studio
我有一个相对复杂的项目,每个应用程序需要两个风味维度.我在下面的示例中更简单地重写了它:
flavorDimensions "shape", "color"
productFlavors {
blue {
flavorDimension "color"
}
red {
flavorDimension "color"
}
green {
flavorDimension "color"
}
square {
flavorDimension "shape"
}
circle {
flavorDimension "shape"
}
Run Code Online (Sandbox Code Playgroud)
我希望能够为每个变体设置不同的applicationId,例如:squareblue将具有与circleblue不同的applicationId.我无法在颜色维度中设置applicationId,因为它对于每个形状都是相同的.在上面的例子中我需要有6个不同的applicationIds.这些ID也不遵循任何模式,它们可以是任何东西.
我在这里看到了答案:如何使用flavorDimensions为每个风味组合设置不同的applicationId?但这意味着我需要手动设置,这对我的项目来说是不可行的,因为变种的数量(1000s).
我真正想要做的是在颜色维度上设置两个应用程序,然后在构建时根据形状维度选择正确的一个.我已经尝试过定义变量但是没有取得任何成功,它们只是被最后一个变量覆盖了.
Gradle 内置了extras 属性,因此您无需定义类即可执行此操作。
看起来像这样,可能有一两个错字:
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)
} ...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4763 次 |
| 最近记录: |