味道是否可能基于其他味道?
例如 的的build.gradle:
productFlavors {
flavor1 {
flavorBase "main"
}
flavor2 {
flavorBase "main"
}
flavor3 {
flavorBase "main"
}
flavor4 {
flavorBase "flavor3"
}
flavor5 {
flavorBase "flavor3"
}
}
答案 0 :(得分:3)
我遇到了同样的问题,需要类似基本风味和两种继承风味的东西。
经过几个小时的尝试后,我最终得到的最佳解决方案是:
现在为您的子味道定义其他源集
flavor4 {
res.srcDirs = ['src/flavor3/res', 'src/flavor4/res']
java.srcDirs = ['src/flavor3/java', 'src/flavor4/java']
resources.srcDirs = ['src/flavor3/java', 'src/flavor4/java']
}
flavor5 {
res.srcDirs = ['src/flavor3/res', 'src/flavor5/res']
java.srcDirs = ['src/flavor3/java', 'src/flavor5/java']
resources.srcDirs = ['src/flavor3/java', 'src/flavor5/java']
}
所以在flavor3(从某种意义上讲它不是一种味道,但我保持命名),你可以定义公共代码和资源。 唯一的缺点是,它不可能在基本文件夹和子文件夹中具有相同的类。
答案 1 :(得分:1)
您可以使用风味尺寸对要素进行分组。例如:
flavorDimensions "color", "function", "data"
productFlavors {
color1 {
flavorDimension "color"
// Something
}
color2 {
flavorDimension "color"
// Something else
}
functions1 {
flavorDimension "function"
// Something
}
functions2 {
flavorDimension "function"
// Something else
}
data1 {
flavorDimension "data"
// Something
}
data2 {
flavorDimension "data"
// Something else
}
}
然后您可以使用以下维度对代码进行分解: Color1Function2Data1或Color2Function1Data1 ...