我有一个多味道项目,名为" 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()'
我很确定这曾经有用(在较旧版本的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'
}