【问题标题】:Android Studio Update 0.4.0 could not find buildConfig()Android Studio 更新 0.4.0 找不到 buildConfig()
【发布时间】:2014-01-07 19:26:50
【问题描述】:

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

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

distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.zip

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

dependencies {
    classpath 'com.android.tools.build:gradle:0.7.+'
}

现在我的项目正在重新构建。

我为不同的 productFlavors 定义了一些字符串常量:

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

这是新的错误

找不到参数的 buildConfig() 方法 [public static final String MY_KEY = "";] 在 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 上运行

【问题讨论】:

    标签: android android-studio gradle android-gradle-plugin build.gradle


    【解决方案1】:

    我无法使用评论(太长)。 您可以在 gradle 1.9 的新增功能中找到它。

    DSL 更改:buildConfigLine 替换为 buildConfigField

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

    您可以在风味或构建类型中覆盖默认配置中定义的字段。请参阅“基本”示例。

    如果有多个风味维度,构建配置现在还自动包含更多 PACKAGE_NAMEVERSION_CODEVERSION_NAMEBUILD_TYPEFLAVORFLAVOR_<group> 常量。

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

    buildConfig "public static final boolean MY_FLAG = true;"
    

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

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

    在你的情况下:

    buildConfigField "String" , "MY_KEY" ,  "\"XXXXX-XXXXX-XXX\""
    

    2015 年 12 月 9 日更新:

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

    buildConfigFields.with {
                    create() {
                        type = "String"
                        name = "MY_KEY"
                        value = "MY_VALUE"
                    }
                }
    

    【讨论】:

    【解决方案2】:

    这个版本引入了一个变化:

    buildConfigField "<type>", "<name>", "<value>"
    

    如果你有这样的一行:

    buildConfig "public static final boolean FLAG = true;"
    

    现在你必须使用:

    buildConfigField "boolean", "FLAG", "true"
    

    对于字符串值,您可以使用:

    buildConfigField "String", "FOO", "\"foo\""
    

    注意: 之前的 DSL 属性:

    buildConfigLine "<value>"
    

    已更改为

    buildConfigField "<type>", "<name>", "<value>"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-10
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 2018-09-07
      • 1970-01-01
      • 2021-07-28
      相关资源
      最近更新 更多