我有一个多味道项目,有"qa"和"prod"的味道.我需要根据构建类型和风格包含不同版本的库.
http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Type-Product-Flavor-Build-Variant上的文档表明可以组合构建类型和风格,使用"flavorBuildCompile"表示法.但是,当我这样做时,我收到此错误:
Error:(88, 0) Gradle DSL method not found: 'qaDebugCompile()'
Run Code Online (Sandbox Code Playgroud)
我很确定这曾经有用(在较旧版本的gradle中).目前使用gradle 2.1.如果做到这一点的方式发生了变化,我还没有找到解释.
注意,如果我使用"flavorCompile"符号,它工作正常,它只在我包含构建类型时失败.
以下是我的构建脚本的概述:
android {
compileSdkVersion 17
buildToolsVersion "20"
...
productFlavors {
qa {
applicationId "com.myapp.qa"
}
prod {
applicationId "com.myapp.prod"
}
}
sourceSets {
main {
java.srcDirs = ['src']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['res']
assets.srcDirs = ['assets']
manifest.srcFile 'AndroidManifest.xml'
}
qa {
res.srcDirs = ['res_qa']
}
prod {
res.srcDirs = ['res_prod']
}
}
}
...
dependencies {
compile fileTree(dir: 'libs', include: '*.jar')
qaCompile 'com.myapp.integration:other_lib:3.0+@aar' //this is fine
qaDebugCompile 'com.myapp.integration:mylib_qa:3.0+@aar' //this fails!
prodDebugCompile 'com.myapp.integration:mylib_prod:3.0+@aar'
qaReleaseCompile 'com.myapp.release:mylib_qa:3.0+@aar'
prodReleaseCompile 'com.myapp.release:mylib_prod:3.0+@aar'
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
466 次 |
| 最近记录: |