无法在productFlavors中添加buildConfigField

MAG*_*Gx2 13 android gradle

在我的android {}部分,我尝试为免费和付费应用程序提供两种不同的构建类型.

可悲的是,我得到了gradle错误:

Gradle'android-Transport'项目刷新失败:构建脚本错误,找不到支持的Gradle DSL方法:'buildConfigField()'!可能的原因可能是: - 您正在使用Gradle版本,其中方法不存在 - 您没有应用提供方法的Gradle插件 - 或者构建脚本中存在错误

这是我在gradle构建中的android {}部分:

android {
    compileSdkVersion 19
    buildToolsVersion "19.0.3"

    defaultConfig {
        minSdkVersion 10
        targetSdkVersion 19
        versionCode 1
        versionName "1.0"
    }

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }

    buildTypes {
        release {
            runProguard true
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
        }

        debug {
            debuggable true
            runProguard false
        }
    }

    productFlavors {
        free {
            packageName "pl.grzeslowski.transport.free"
            buildConfigField "transport.product_flavors.MonetizationType" "MONETIAZATION_TYPE" "transport.product_flavors.MonetizationType.FREE"
        }

        paid {
            packageName "pl.grzeslowski.transport.paid"
            buildConfigField "transport.product_flavors.MonetizationType" "MONETIAZATION_TYPE" "transport.product_flavors.MonetizationType.PAID"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我的控制台日志:

执行任务:[:transport:compileDebugJava]

按需配置是一项孵化功能.下载 http://repo1.maven.org/maven2/com/android/tools/build/gradle/0.8.3/gradle-0.8.3.pom 下载 http://repo1.maven.org/maven2/com/android /tools/lint/lint/22.5.3/lint-22.5.3.pom 下载 http://repo1.maven.org/maven2/com/android/tools/build/builder/0.8.3/builder-0.8.3 .pom 下载 http://repo1.maven.org/maven2/com/android/tools/lint/lint-checks/22.5.3/lint-checks-22.5.3.pom 下载 http://repo1.maven.org /maven2/com/android/tools/sdklib/22.5.3/sdklib-22.5.3.pom 下载 http://repo1.maven.org/maven2/com/android/tools/ddms/ddmlib/22.5.3/ddmlib -22.5.3.pom 下载 http://repo1.maven.org/maven2/com/android/tools/build/builder-model/0.8.3/builder-model-0.8.3.pom 下载 http:// repo1 .maven.org/maven2/com/android/tools/build/manifest-merger/22.5.3/manifest-merger-22.5.3.pom 下载 http://repo1.maven.org/maven2/com/android/tools /sdk-common/22.5.3/sdk-common-22.5.3.pom 下载 http://repo1.maven.org/maven2/com/android/tools/build/builder-test-api/0.8.3/builder -test-API 0.8.3.pom Downl oad http://repo1.maven.org/maven2/com/android/tools/common/22.5.3/common-22.5.3.pom 下载 http://repo1.maven.org/maven2/com/android/tools /lint/lint-api/22.5.3/lint-api-22.5.3.pom 下载 http://repo1.maven.org/maven2/com/android/tools/dvlib/22.5.3/dvlib-22.5.3 .pom 下载 http://repo1.maven.org/maven2/com/android/tools/layoutlib/layoutlib-api/22.5.3/layoutlib-api-22.5.3.pom 下载 http://repo1.maven.org /maven2/com/android/tools/build/gradle/0.8.3/gradle-0.8.3.jar 下载 http://repo1.maven.org/maven2/com/android/tools/lint/lint/22.5.3 /lint-22.5.3.jar 下载 http://repo1.maven.org/maven2/com/android/tools/build/builder/0.8.3/builder-0.8.3.jar 下载 http://repo1.maven .ORG/maven2的/ COM /安卓/工具/皮棉/皮棉的检查/ 22.5.3 /掉毛的检查,22.5.3.jar

FAILURE:构建因异常而失败.

  • 其中:构建文件'D:\ Programowanie\GitProjects\transport\android-Transport\transport\build.gradle'行:77

  • 出了什么问题:评估项目':transport'时出现问题.

    无法在GroupableProductFlavorDsl_Decorated上找到参数[transport.product_flavors.MonetizationType]的方法buildConfigField(){name = free,minSdkVersion = -1,targetSdkVersion = -1,renderscriptTargetApi = -1,renderscriptSupportMode = null,renderscriptNdkMode = null,versionCode = -1 ,versionName = null,packageName = transport.free,testPackageName = null,testInstrumentationRunner = null,testHandleProfiling = null,testFunctionalTest = null,signingConfig = null,resConfig = null}.

  • 尝试:使用--stacktrace选项运行以获取堆栈跟踪.使用--info或--debug选项运行以获取更多日志输出.

建筑失败

总时间:9.781秒

Pet*_*ser 31

这些buildConfigField行的正确语法是:

buildConfigField "boolean", "MY_FLAG", "true"
Run Code Online (Sandbox Code Playgroud)

换句话说,字符串需要用逗号分隔.