不能在productFlavors添加buildConfigField [英] Cannot add buildConfigField in productFlavors

查看:1162
本文介绍了不能在productFlavors添加buildConfigField的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我的Andr​​oid {}部分我试图把两种不同的版本类型可以免费和付费应用程序。

不幸的是我得到错误的gradle:


  

摇篮Android的交通运输项目刷新失败:构建脚本错误,
  不支持的摇篮DSL方法找到:'buildConfigField()'!可能
  原因可能是: - 您使用的摇篮版本,其中的方法是
  没有 - 你没有申请摇篮插件,它提供了方法 - 或
  有一个错误在构建脚本


这是我的Andr​​oid {}的gradle中构建部分:

 安卓{
    compileSdkVersion 19
    buildToolsVersion19.0.3    defaultConfig {
        10的minSdkVersion
        targetSdkVersion 19
        版本code 1
        的versionName1.0
    }    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_6
        targetCompatibility JavaVersion.VERSION_1_6
    }    buildTypes {
        发布 {
            runProguard真
            proguardFiles getDefaultProguardFile('proguard的-android.txt'),'proguard的-rules.txt
        }        调试{
            调试的真
            runProguard假
        }
    }    productFlavors {
        自由 {
            软件包名pl.grzeslowski.transport.free
            buildConfigFieldtransport.product_flavors.MonetizationTypeMONETIAZATION_TYPEtransport.product_flavors.MonetizationType.FREE
        }        支付{
            软件包名pl.grzeslowski.transport.paid
            buildConfigFieldtransport.product_flavors.MonetizationTypeMONETIAZATION_TYPEtransport.product_flavors.MonetizationType.PAID
        }
    }
}

这是我的控制台日志:


  

执行任务:[:交通: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 /安卓/工具/皮棉/皮棉/ 22.5.3 /绒22.5.3.pom
  下载
  的http://repo1.maven.org/maven2/com/android/tools/build/builder/0.8.3/builder-0.8.3.pom
  下载
  <一href=\"http://repo1.maven.org/maven2/com/android/tools/lint/lint-checks/22.5.3/lint-checks-22.5.3.pom\" rel=\"nofollow\">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 /安卓/工具/ 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
  下载
  <一href=\"http://repo1.maven.org/maven2/com/android/tools/build/builder-model/0.8.3/builder-model-0.8.3.pom\" rel=\"nofollow\">http://repo1.maven.org/maven2/com/android/tools/build/builder-model/0.8.3/builder-model-0.8.3.pom
  下载
  <一href=\"http://repo1.maven.org/maven2/com/android/tools/build/manifest-merger/22.5.3/manifest-merger-22.5.3.pom\" rel=\"nofollow\">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
  下载
  <一href=\"http://repo1.maven.org/maven2/com/android/tools/build/builder-test-api/0.8.3/builder-test-api-0.8.3.pom\" rel=\"nofollow\">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 /安卓/工具/普通/ 22.5.3 /共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 /安卓/工具/ dvlib / 22.5.3 / dvlib-22.5.3.pom
  下载
  <一href=\"http://repo1.maven.org/maven2/com/android/tools/layoutlib/layoutlib-api/22.5.3/layoutlib-api-22.5.3.pom\" rel=\"nofollow\">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 /安卓/工具/皮棉/皮棉/ 22.5.3 /绒22.5.3.jar
  下载
  的http://repo1.maven.org/maven2/com/android/tools/build/builder/0.8.3/builder-0.8.3.jar
  下载
  <一href=\"http://repo1.maven.org/maven2/com/android/tools/lint/lint-checks/22.5.3/lint-checks-22.5.3.jar\" rel=\"nofollow\">http://repo1.maven.org/maven2/com/android/tools/lint/lint-checks/22.5.3/lint-checks-22.5.3.jar


  
  

失败:建立失败,一个异常


  
  

      
  • 其中:构建文件'D:\\ Programowanie \\ GitProjects \\传输\\ Android的交通运输\\运输\\的build.gradle
      行:77


  •   
  • 出了什么问题:发生问题的评估项目:运输。


      
      

        

    找不到参数[transport.product_flavors.MonetizationType]的方法buildConfigField()
        GroupableProductFlavorDsl_Decorated {名=免费的minSdkVersion = -1,
        targetSdkVersion = -1,renderscriptTargetApi = -1,
        renderscriptSupportMode = NULL,renderscriptNdkMode = NULL,
        版本code = -1,=的versionName空,
        的packageName = transport.free,testPackageName = NULL,
        testInstrumentationRunner = NULL,testHandleProfiling = NULL,
        testFunctionalTest = NULL,signingConfig = NULL,resConfig = NULL}


      

  •   
  • 尝试:用--stacktrace选项获取堆栈跟踪运行。与--info或--debug选项来运行,以获得更多的日志输出。


  •   

  
  

构建失败


  
  

总时间:9.781秒。



解决方案

buildConfigField 行正确的语法是:

  buildConfigField布尔,MY_FLAG,真

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

In my android{} section I tried to put two different build types for may free and paid app.

Sadly I'm getting gradle error:

Gradle 'android-Transport' project refresh failed: Build script error, unsupported Gradle DSL method found: 'buildConfigField()'! Possible causes could be: - you are using Gradle version where the method is absent - you didn't apply Gradle plugin which provides the method - or there is a mistake in a build script

This is my android{} section in gradle build:

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

And this is my console log:

Executing tasks: [:transport:compileDebugJava]

Configuration on demand is an incubating feature. Download http://repo1.maven.org/maven2/com/android/tools/build/gradle/0.8.3/gradle-0.8.3.pom Download http://repo1.maven.org/maven2/com/android/tools/lint/lint/22.5.3/lint-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/build/builder/0.8.3/builder-0.8.3.pom Download http://repo1.maven.org/maven2/com/android/tools/lint/lint-checks/22.5.3/lint-checks-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/sdklib/22.5.3/sdklib-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/ddms/ddmlib/22.5.3/ddmlib-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/build/builder-model/0.8.3/builder-model-0.8.3.pom Download http://repo1.maven.org/maven2/com/android/tools/build/manifest-merger/22.5.3/manifest-merger-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/sdk-common/22.5.3/sdk-common-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/build/builder-test-api/0.8.3/builder-test-api-0.8.3.pom Download http://repo1.maven.org/maven2/com/android/tools/common/22.5.3/common-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/lint/lint-api/22.5.3/lint-api-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/dvlib/22.5.3/dvlib-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/layoutlib/layoutlib-api/22.5.3/layoutlib-api-22.5.3.pom Download http://repo1.maven.org/maven2/com/android/tools/build/gradle/0.8.3/gradle-0.8.3.jar Download http://repo1.maven.org/maven2/com/android/tools/lint/lint/22.5.3/lint-22.5.3.jar Download http://repo1.maven.org/maven2/com/android/tools/build/builder/0.8.3/builder-0.8.3.jar Download http://repo1.maven.org/maven2/com/android/tools/lint/lint-checks/22.5.3/lint-checks-22.5.3.jar

FAILURE: Build failed with an exception.

  • Where: Build file 'D:\Programowanie\GitProjects\transport\android-Transport\transport\build.gradle' line: 77

  • What went wrong: A problem occurred evaluating project ':transport'.

    Could not find method buildConfigField() for arguments [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, signingConfig=null, resConfig=null}.

  • Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 9.781 secs

解决方案

The correct syntax for the buildConfigField lines is:

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

In other words, the strings need to be separated by commas.

这篇关于不能在productFlavors添加buildConfigField的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆