Phi*_*hil 27 android gradle android-studio build.gradle android-gradle-plugin
我有一套使用相同模块的项目,其中包含几乎所有实际代码.该项目设置如下:
project/
- app/
- build.gradle
- libraries/
- module/
- build.gradle
- build.gradle
- settings.gradle
Run Code Online (Sandbox Code Playgroud)
依赖关系都设置正确,我可以构建和运行应用程序很好,但我只能添加项目的风味,这不是理想的解决方案.settings.gradle包含以下内容:
include ':app', ':libraries:module'
Run Code Online (Sandbox Code Playgroud)
在app目录的build.gradle文件中,我添加了以下块:
productFlavors {
alpha
production
}
Run Code Online (Sandbox Code Playgroud)
使用gradle 0.11,这会同步并创建assembleAlphaDebug,assembleAlphaRelease,assembleProductionDebug,assembleProductionRelease任务.当我尝试在模块中执行此操作时,我收到错误:
找不到与给定名称匹配的资源(在'theme'处,值为'@ style/MyCustomTheme')
在建成app/src/main/AndroidManifest.xml.由于某种原因,该模块尚未构建,因此自定义主题无效.我究竟做错了什么?
Sco*_*rta 67
在库模块的build.gradle中,如果在另一个模块中包含时没有指定,则需要一些额外的行来告诉它导出flavor和默认使用的构建变量:
android {
defaultPublishConfig "productionRelease"
publishNonDefault true
productFlavors {
alpha {
}
production {
}
}
}
Run Code Online (Sandbox Code Playgroud)
publishNonDefault只有当有人想要依赖productionRelease变体以外的东西时才需要这一点.如果您首先在库中设置多种口味,可能就是这种情况.
现在,如果您通过build.gradle中的另一个模块添加依赖项:
dependencies {
compile project(':module')
}
Run Code Online (Sandbox Code Playgroud)
它productionRelease默认取决于变体.如果您想依赖非默认变体:
dependencies {
compile project(path: ':module', configuration:'alphaDebug')
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10550 次 |
| 最近记录: |