Android特定的Gradle产品风味组合
在我的代码中,我有一些模板,它们都来自一个代码库。对于每个模板,我想添加特定的尺寸。使用风味维度和产品风味,我达到了以下代码:Android特定的Gradle产品风味组合,android,gradle,Android,Gradle,在我的代码中,我有一些模板,它们都来自一个代码库。对于每个模板,我想添加特定的尺寸。使用风味维度和产品风味,我达到了以下代码: flavorDimensions "template", "color" productFlavors { templateA { applicationId "com.templatea" versionCode 1 versionName "1.0.0" flavorDimension "
flavorDimensions "template", "color"
productFlavors {
templateA {
applicationId "com.templatea"
versionCode 1
versionName "1.0.0"
flavorDimension "template"
}
templateB {
applicationId "com.templateb"
versionCode 1
versionName "1.0.0"
flavorDimension "template"
}
templateC {
applicationId "com.templatec"
versionCode 1
versionName "1.0.0"
flavorDimension "template"
}
blue {
applicationId "com.blue"
versionCode 1
versionName "1.0.0"
flavorDimension "color"
}
green {
applicationId "com.green"
versionCode 1
versionName "1.0.0"
flavorDimension "color"
}
orange {
applicationId "com.orange"
versionCode 1
versionName "1.0.0"
flavorDimension "color"
}
这给出了结果(我忽略了构建类型):
模板
模板协议
模板范围
模板蓝
模板绿色
templateBOrange templateCBlue
模板绿色
templateCOrange
当然,这是预期的行为,但我希望实现以下目标:
模板
模板蓝
模板硼烷
模板
模板绿色
因此,每个模板都从一个主代码库派生,每个模板都可以有从其代码库派生的不同变体。有没有办法指定可以使用哪些风味维度组合,或者有没有办法排除我不想要的组合?需要明确的是,每个模板都可以在不指定颜色的情况下运行
我希望我的问题是清楚的。提前感谢。您可以使用gradle
variantFilter
排除某些配置
例如:
productFlavors {
templateB {
applicationId "com.templateb"
versionCode 1
versionName "1.0.0"
flavorDimension "template"
}
templateC {
applicationId "com.templatec"
versionCode 1
versionName "1.0.0"
flavorDimension "template"
}
blue {
applicationId "com.blue"
versionCode 1
versionName "1.0.0"
flavorDimension "color"
}
}
android.variantFilter { variant ->
if(variant.getFlavors().get(0).name.equals('templateC')
&& variant.getFlavors().get(1).name.equals('blue')) {
variant.setIgnore(true);
}
}
这是否也像
initWith()
内部buildType
块一样工作@文森特·诺克