我有一套使用相同模块的项目,其中几乎包含所有实际代码。该项目的设置如下:
project/
- app/
- build.gradle
- libraries/
- module/
- build.gradle
- build.gradle
- settings.gradle
所有依赖项都设置正确,我可以很好地构建和运行应用程序,但是我只能为项目添加 flavor ,这不是理想的解决方案。 settings.gradle 包含以下内容:
include ':app', ':libraries:module'
在 app 目录的 build.gradle 文件中,我添加了以下代码块:
productFlavors {
alpha
production
}
使用 gradle 0.11,这会同步并创建 assembleAlphaDebug、assembleAlphaRelease、assembleProductionDebug、assembleProductionRelease 任务。当我尝试在模块中执行此操作时,我收到错误:
No resource found that matches the given name (at 'theme' with value '@style/MyCustomTheme')
在内置的 app/src/main/AndroidManifest.xml
中。由于某种原因,模块没有被构建,所以自定义主题不起作用。我做错了什么?
最佳答案
在库模块的 build.gradle 中,您需要几行额外的行来告诉它导出 flavor 以及在从另一个模块包含时如果未指定默认使用哪个构建变体:
android {
defaultPublishConfig "productionRelease"
publishNonDefault true
productFlavors {
alpha {
}
production {
}
}
}
publishNonDefault
位仅在有人想要依赖 productionRelease
变体以外的其他东西时才是必需的。如果您首先在库中设置了多种口味,大概就是这种情况。
现在,如果您通过 this 在其 build.gradle 中添加来自另一个模块的依赖项:
dependencies {
compile project(':module')
}
默认情况下它将取决于 productionRelease
变体。如果您想依赖非默认变体:
dependencies {
compile project(path: ':module', configuration:'alphaDebug')
}
关于android - 如何使用 Android Studio 在模块中添加 flavor ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24307596/