是的,Android sourceSets 提供了一种使用嵌套 flavor 结构的方法。以下是一个示例:
在 app 模块的 build.gradle 文件中,定义嵌套 flavor 结构:
android {
flavorDimensions "version", "environment"
productFlavors {
version1 {
dimension "version"
}
version2 {
dimension "version"
}
environment1 {
dimension "environment"
}
environment2 {
dimension "environment"
}
}
sourceSets {
version1Environment1 {
java.srcDirs = ['src/version1/environment1/java']
res.srcDirs = ['src/version1/environment1/res']
}
version1Environment2 {
java.srcDirs = ['src/version1/environment2/java']
res.srcDirs = ['src/version1/environment2/res']
}
version2Environment1 {
java.srcDirs = ['src/version2/environment1/java']
res.srcDirs = ['src/version2/environment1/res']
}
version2Environment2 {
java.srcDirs = ['src/version2/environment2/java']
res.srcDirs = ['src/version2/environment2/res']
}
}
}
在这个示例中,定义了两个 flavor 维度:version 和 environment。每个维度下有两个 flavor。然后,通过定义 sourceSets,为每个组合的 flavor 创建对应的源代码和资源目录。
在这个示例中,有四个源代码和资源目录:
你可以根据你的实际需求,根据不同的嵌套 flavor 组合,定义不同的源代码和资源目录。