如何使用Android Studio在模块中添加口味?
我有一套使用相同模块的项目,其中包含几乎所有实际代码。项目的设置如下所示:如何使用Android Studio在模块中添加口味?,android,gradle,android-studio,android-gradle-plugin,build.gradle,Android,Gradle,Android Studio,Android Gradle Plugin,Build.gradle,我有一套使用相同模块的项目,其中包含几乎所有实际代码。项目的设置如下所示: project/ - app/ - build.gradle - libraries/ - module/ - build.gradle - build.gradle - settings.gradle 这些依赖项都设置正确,我可以构建和运行应用程序,但我只能为项目添加味道,这不是理想的解决方案。settings.gradle包含以下内容: include ':app', '
project/
- app/
- build.gradle
- libraries/
- module/
- build.gradle
- build.gradle
- settings.gradle
这些依赖项都设置正确,我可以构建和运行应用程序,但我只能为项目添加味道,这不是理想的解决方案。settings.gradle包含以下内容:
include ':app', ':libraries:module'
在应用程序目录的build.gradle文件中,我添加了以下块:
productFlavors {
alpha
production
}
使用gradle 0.11,这将同步并创建assembleAlphaDebug、AssembleAlphaElease、assembleProductionDebug、assembleProductionRelease任务。当我尝试在模块中执行此操作时,会出现以下错误:
未找到与给定名称匹配的资源(位于值为“@style/MyCustomTheme”的“主题”)
在内置的
app/src/main/AndroidManifest.xml
中。由于某些原因,模块未生成,因此自定义主题无法工作。我做错了什么?在库模块的build.gradle中,您需要两行额外的代码来告诉它导出样式,以及如果从另一个模块中包含时未指定默认使用的构建变量:
android {
defaultPublishConfig "productionRelease"
publishNonDefault true
productFlavors {
alpha {
}
production {
}
}
}
只有当有人希望依赖于除productionRelease
变体之外的其他内容时,才需要PublishNodefault
位。如果您首先在库中设置了多种口味,那么可能就是这种情况
现在,如果您在build.gradle中通过此添加来自另一个模块的依赖项:
dependencies {
compile project(':module')
}
默认情况下,它将取决于productionRelease
变量。如果您希望依赖非默认变量:
dependencies {
compile project(path: ':module', configuration:'alphaDebug')
}
根据我的理解,即使是应用程序也是一个和你们“模块”相同的模块,在任何模块中加入口味都可以。编译代码时出现了什么错误。@pyus13进一步看,这个错误似乎是因为找不到给定风格的资源。我在应用程序的清单中设置了自定义主题,但我没有找到与给定名称匹配的资源(在“主题”处,值为“@style/MyCustomTheme”)。您的模块是一个库项目。意味着它有“安卓库”或“安卓”作为插件?@pyus13它使用安卓库插件。正如安卓工作室团队负责人所评论的,这里的库不支持口味。有可能只依赖于味道而不依赖于构建类型吗?我想您指的是
编译项目(
这篇文章帮了我很大的忙。到目前为止,我已经为此花费了大量的时间。我现在注意到的一件事是,defaultPublishConfig中指定的构建模式是现在唯一可以从android studio中构建的。还有其他人经历过吗?刚刚得到我想要的:)谢谢:)