如何在Android Studio模块中添加风味?

时间:2014-06-19 13:17:57

标签: android gradle android-studio android-gradle build.gradle

我有一套使用相同模块的项目,其中包含几乎所有实际代码。该项目设置如下:

project/
  - app/
    - build.gradle
  - libraries/
    - module/
      - build.gradle
  - build.gradle
  - settings.gradle

依赖关系都设置正确,我可以很好地构建和运行应用程序,但是我只能为项目添加风味,这不是理想的解决方案。 settings.gradle 包含以下内容:

include ':app', ':libraries:module'

在app目录的 build.gradle 文件中,我添加了以下块:

productFlavors {
    alpha
    production
}

使用gradle 0.11,这将同步并创建 assembleAlphaDebug assembleAlphaRelease assembleProductionDebug assembleProductionRelease 任务。当我尝试在模块中执行此操作时,我收到错误:

  

找不到与给定名称匹配的资源(在'主题'有价值' @ style / MyCustomTheme')

在构建的app/src/main/AndroidManifest.xml中。由于某种原因,该模块尚未构建,因此自定义主题无效。我做错了什么?

1 个答案:

答案 0 :(得分:67)

在库模块的build.gradle中,如果在另一个模块中包含时没有指定,则需要一些额外的行来告诉它导出flavor和默认使用的构建变体:

android {
    defaultPublishConfig "productionRelease"
    publishNonDefault true

    productFlavors {
        alpha {
        }
        production {
        }
    }
}

只有当某人想要依赖publishNonDefault变体以外的其他内容时才需要productionRelease位。如果您首先在库中设置多种口味,可能就是这种情况。

现在,如果您通过build.gradle中的另一个模块添加依赖项:

dependencies {
    compile project(':module')
}

默认情况下,它取决于productionRelease变体。如果您想依赖非默认变体:

dependencies {
    compile project(path: ':module', configuration:'alphaDebug')
}
相关问题