Невозможно добавить buildConfigField в productFlavors

В моем разделе android {} я попытался установить два разных типа сборки для бесплатного и платного приложения.

К сожалению, я получаю ошибку gradle:

Gradle Не удалось обновить проект "android-Transport": постройте ошибку script, неподдерживаемый gradle Метод DSL найден: 'buildConfigField()'! Возможное причинами могут быть: - вы используете версию gradle, где метод отсутствует - вы не применили плагин gradle, который предоставляет метод - или есть ошибка в сборке script

Это мой раздел android {} в gradle сборке:

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"
        }
    }
}

И это мой консольный журнал:

Выполнение задач: [: 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Скачать 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/android/tools/lint/lint-checks/22.5.3/lint-checks-22.5.3.jar

FAILURE: сбой сборки с исключением.

  • Где: Создать файл 'D:\Programowanie\GitProjects\transport\android-Transport\transport\build.gradle' line: 77

  • Что пошло не так: возникла проблема с оценкой проекта ': transport'.

    Не удалось найти метод buildConfigField() для аргументов [transport.product_flavors.MonetizationType] on   GroupableProductFlavorDsl_Decorated {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, signedConfig = null, resConfig = null}.

  • Попробуйте: запустите с опцией -stacktrace, чтобы получить трассировку стека. Запустите с опцией -info или --debug, чтобы получить больше выходных данных журнала.

СТРОГО НЕИСПРАВНО

Общее время: 9.781 секунд

Ответ 1

Правильный синтаксис для строк buildConfigField:

buildConfigField "boolean", "MY_FLAG", "true"

Другими словами, строки должны быть разделены запятыми.

Ответ 2

В моем случае:

buildConfigField ( "transport.product_flavors.MonetizationType", "MONETIAZATION_TYPE", "transport.product_flavors.MonetizationType.FREE" )