Android 你是如何结合多种口味还是排除一种口味?

Android 你是如何结合多种口味还是排除一种口味?,android,gradle,build.gradle,gradle-kotlin-dsl,android-build-flavors,Android,Gradle,Build.gradle,Gradle Kotlin Dsl,Android Build Flavors,这将生成生成生成变量: blueDebug, 蓝色发布, 红蜘蛛, 红发 但除此之外,我还需要一个构建变体,它是这两者的组合,因此最终列表将是: blueDebug, 蓝色发布, 红蜘蛛, 红色发布, 蓝蜘蛛, 蓝释光 如果你把它们放在不同的维度上,你最终得到的只是蓝红色的组合 如何设置gradle脚本以支持此案例?最终目标是能够选择您想要的是红色库、蓝色库还是两者的组合。我认为这在口味上是不可能的。我可以推荐你阅读更多关于口味的知识 请看一下,因为您已经有了蓝色和红色库模块,您的应用程序可以有

这将生成生成生成变量: blueDebug, 蓝色发布, 红蜘蛛, 红发

但除此之外,我还需要一个构建变体,它是这两者的组合,因此最终列表将是: blueDebug, 蓝色发布, 红蜘蛛, 红色发布, 蓝蜘蛛, 蓝释光

如果你把它们放在不同的维度上,你最终得到的只是蓝红色的组合


如何设置gradle脚本以支持此案例?最终目标是能够选择您想要的是红色库、蓝色库还是两者的组合。

我认为这在口味上是不可能的。我可以推荐你阅读更多关于口味的知识


请看一下,因为您已经有了
蓝色
红色
库模块,您的应用程序可以有以下几种风格:

  • blue
    ,这取决于
    blue
  • red
    ,这取决于
    red
  • blueRed
    ,这取决于
    blue
    red
我假设
blue
red
库可以并排包含

flavorDimensions("color")

productFlavors {
    register("red") {
        setDimension("color")
    }
    register("blue") {
        setDimension("color")
    }
}

redImplementation("red library")
blueImplementation("blue library")
flavorDimensions("color")

productFlavors {
    register("red") {
        setDimension("color")
    }
    register("blue") {
        setDimension("color")
    }
    register("blueRed") {
        setDimension("color")
    }
}

redImplementation("red library")
blueImplementation("blue library")
blueRedImplementation("red library")
blueRedImplementation("blue library")