Android多种口味与多个构建类型

3
我们有一个项目,包含多个版本,每个版本都有3种不同的构建类型:debug、QA和release。
productFlavors {
    flavor1 {}

    flavor2 {}

    flavor3 {}   
    }

buildTypes {
    debug {
        applicationIdSuffix ".debug"
    }

    qa {
        applicationIdSuffix ".qa"

    }

    release {
   ..
    }

但是对于每个版本和构建类型,我们需要不同的库依赖。例如:
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脚本添加这些依赖项?

你应该使用 flavorDimensions 和 variantFilters:https://dev59.com/questions/S1gQ5IYBdhLWcg3w6IOg#60010971 GL - Braian Coronel
2个回答

0

解决方案

  1. 如果您想在单个项目中创建多个构建类型。那么您需要遵循这个https://dev59.com/blcO5IYBdhLWcg3weRhs#66315794链接。我使用以下代码,它可以正常工作,所以不要去别处,只需按照链接操作。

希望这段代码对您有所帮助。


这个链接对我很有帮助。感谢你的支持。 - Shobha Tripathi

0

我知道你可以像这样为每个 buildType 定义特定的依赖关系

debugCompile 'baseUrl:myLibrary:1.0.0:debugLib@aar'
releaseCompile 'baseUrl:myLibrary:1.0.0:release:Lib@aar'
  • compile:主应用程序
  • androidTestCompile:测试应用程序
  • debugCompile:调试版本
  • releaseCompile:发布版本。

由于无法构建没有关联 Build Type 的 APK,因此 APK 始终配置有两个(或多个)配置:编译和编译。创建新的 Build Type 会自动基于其名称创建新的配置。

此处所述,似乎也可以使用 Flavor 良好地工作(但不适用于 flavorDimensions)

对于变体(buildType+Flavor),这似乎需要更多的工作。否则,您可以将库定义为实际的库项目,并使用以下语法:

要创建对另一个已发布的 artifact 的依赖项,您需要指定要使用哪个依赖项:

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接