具有多种构建类型的Android多种口味

时间:2015-03-13 11:17:18

标签: android gradle android-productflavors

我们有一个具有多种口味的项目,每种口味都有3种不同的构建类型:debug,QA和release。

productFlavors {
    flavor1 {}

    flavor2 {}

    flavor3 {}   
    }

buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }

    qa {
        applicationIdSuffix ".qa"

    }

    release {
   ..
    }

但是对于每个flavor和buildType,我们需要不同的库依赖。例如:

compile 'baseUrl:myLibrary:1.0.0:flavor1Release@aar'
compile 'baseUrl:myLibrary:1.0.0:flavor1Qa@aar'
...
compile 'baseUrl:myLibrary:1.0.0:flavor3Qa@aar'

我们可以使用Groovy脚本添加这些依赖项吗?

2 个答案:

答案 0 :(得分:1)

解决方案

  1. 如果你想在我们的单个项目中创建多个构建类型。所以你需要按照这个https://stackoverflow.com/a/66315794/12134511我使用下面的代码工作很好所以不要去任何地方只需点击链接.

希望此代码对您有帮助。

答案 1 :(得分:0)

我知道您可以像每个buildType一样定义特定的依赖关系

debugCompile 'baseUrl:myLibrary:1.0.0:debugLib@aar'
releaseCompile 'baseUrl:myLibrary:1.0.0:release:Lib@aar'
  • 编译:主要应用程序
  • androidTestCompile:测试应用程序
  • debugCompile:debug Build Type
  • releaseCompile:发布Build Type。
  

因为无法构建没有的APK   关联的构建类型,APK总是配置两个(或更多)   配置:编译和编译。创建一个新的Build   Type会根据其名称自动创建新配置。

here所述(但不包含flavorDimensions ),它似乎也能正常使用。

为变体(buildType + Flavor)做这件事似乎有点多了。否则,您可以将库定义为真正的库项目,并使用类似

的语法
  

要创建对另一个已发布工件的依赖关系,您需要   指定使用哪一个:

dependencies {
    flavor1Compile project(path: ':lib1', configuration: 'flavor1Release')
    flavor2Compile project(path: ':lib1', configuration: 'flavor2Release')
}

来自:http://tools.android.com/tech-docs/new-build-system/user-guide