在我的android {}部分,我尝试为免费和付费应用提供两种不同的构建类型。
可悲的是,我得到了gradle错误:
Gradle' android-Transport'项目刷新失败:构建脚本错误, 发现不支持的Gradle DSL方法:' buildConfigField()'!可能 原因可能是: - 您正在使用方法所在的Gradle版本 缺席 - 你没有申请提供方法的Gradle插件 - 或者 构建脚本中存在错误
这是我在gradle build中的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"
}
}
}
这是我的控制台日志:
执行任务:[: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
失败:构建因异常而失败。
其中:构建文件' D:\ Programowanie \ GitProjects \ transport \ android-Transport \ transport \ build.gradle' 行:77
出了什么问题:评估项目时遇到了问题':transport'。
找不到参数[transport.product_flavors.MonetizationType]的方法buildConfigField() 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,signingConfig = null,resConfig = null}。
尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。
建立失败
总时间:9.781秒
答案 0 :(得分:31)
buildConfigField
行的正确语法是:
buildConfigField "boolean", "MY_FLAG", "true"
换句话说,字符串需要用逗号分隔。
答案 1 :(得分:1)
就我而言:
buildConfigField(“transport.product_flavors.MonetizationType”,“MONETIAZATION_TYPE”,“transport.product_flavors.MonetizationType.FREE”)