Android Studio Update 0.4.0找不到buildConfig()

pas*_*ssy 28 android gradle android-studio build.gradle android-gradle-plugin

将Android Studio升级到版本0.4.0后,我遇到了一个新错误:

我通过gradle-wrapper.properties升级到gradle 1.9

distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.zip
Run Code Online (Sandbox Code Playgroud)

并在build.gradle中升级了gradle版本

dependencies {
    classpath 'com.android.tools.build:gradle:0.7.+'
}
Run Code Online (Sandbox Code Playgroud)

现在我的项目正在重建.

我为不同的productFlavors定义了一些String常量:

productFlavors {
    local {
        buildConfig "public static final String MY_KEY = \"\";"
    }

    alpha {
        buildConfig "public static final String MY_KEY = \"XXXXX-XXXXX-XXX\";"
    }

    beta {
        buildConfig "public static final String MY_KEY = \"YYYYY-YYYYY-YYY\";"
    }
}
Run Code Online (Sandbox Code Playgroud)

这是新的错误

找不到参数的方法buildConfig() [public static final String MY_KEY ="";] on GroupableProductFlavorDsl_Decorated {name = local,minSdkVersion = -1,targetSdkVersion = -1,renderscriptTargetApi = -1,renderscriptSupportMode = null,renderscriptNdkMode = null, versionCode = -1,versionName = null,packageName = null,testPackageName = null,testInstrumentationRunner = null,testHandleProfiling = null,testFunctionalTest = null,signingConfig = null,resConfig = null}.

一切都在使用Android Studio 3.7

Gab*_*tti 93

我不能使用评论(太长时间).您可以在gradle 1.9中的新功能中找到它.

DSL更改:buildConfigLine替换为buildConfigField:

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

您可以在flavor或build类型中覆盖默认配置中定义的字段.请参阅"基本"示例.

构建配置现在也自动含有较多的常数PACKAGE_NAME,VERSION_CODE,VERSION_NAME,BUILD_TYPE,FLAVOR以及FLAVOR_<group>如果有几个味的尺寸.

所以如果你有这样的一行:

buildConfig "public static final boolean MY_FLAG = true;"
Run Code Online (Sandbox Code Playgroud)

您现在应该将其替换为以下内容:

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

在你的情况下:

buildConfigField "String" , "MY_KEY" ,  "\"XXXXX-XXXXX-XXX\""
Run Code Online (Sandbox Code Playgroud)

更新12/09/2015:

使用新的实验插件(0.2.1),您必须使用:

buildConfigFields.with {
                create() {
                    type = "String"
                    name = "MY_KEY"
                    value = "MY_VALUE"
                }
            }
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你的帮助!工作良好.这里有一些额外的信息https://plus.google.com/+AndroidDevelopers/posts/2XCHLizKpWs (3认同)