我有一套使用相同模块的项目,其中包含几乎所有实际代码。该项目的设置如下:
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
中。由于某种原因,模块没有构建,因此自定义主题无法工作。我做错了什么?
在库模块的build. gradle中,您需要几行额外的行来告诉它导出风味以及默认使用哪个构建变体(如果在从另一个模块包含时未指定):
android {
defaultPublishConfig "productionRelease"
publishNonDefault true
productFlavors {
alpha {
}
production {
}
}
}
只有当有人想要依赖productionRelease
变体以外的东西时,才需要发布NonDefault
位。如果您首先在库中设置了多种风格,大概就是这种情况。
现在,如果您通过this在其build. gradle中添加来自另一个模块的依赖项:
dependencies {
compile project(':module')
}
默认情况下,它将依赖于productionRelease
变体。如果您想依赖非默认变体:
dependencies {
compile project(path: ':module', configuration:'alphaDebug')
}
flavorDimensions "env"
productFlavors {
dev {
dimension "env"
}
pre {
dimension "env"
}
prod {
dimension "env"
}
}
flavorDimensions "env"
productFlavors {
register("dev")
register("pre")
register("prod")
}
我已经在这个使用不同的库模块为每个android风格发布了一个ansower