gradle android插件变种依赖:找不到DSL方法

Ste*_*eve 7 android gradle

我有一个多味道项目,有"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)