Android Studio 更新 0.4.0 找不到 buildConfig()

Posted

技术标签:

【中文标题】Android Studio 更新 0.4.0 找不到 buildConfig()【英文标题】:Android Studio Update 0.4.0 could not find 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_Decoratedname=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 上运行

【问题讨论】:

【参考方案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"
                
            

【讨论】:

感谢您的帮助!工作正常。这里有一些额外的信息plus.google.com/+AndroidDevelopers/posts/2XCHLizKpWs 那么如何访问BuildConfig.BUILD_TYPE?我不明白。【参考方案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>"

【讨论】:

以上是关于Android Studio 更新 0.4.0 找不到 buildConfig()的主要内容,如果未能解决你的问题,请参考以下文章

Android Studio 0.4 在 APK META-INF/LICENSE.txt 中复制的重复文件

Android Studio 更新 0.5.3 - 找不到平台“android-19”

将模块导入到 android studio 0.4.0v 上的 gradle 项目

Android Studio 3.2“找不到目标设备”

Android Studio:找不到 com.android.tools.build:gradle:2.0.0-alpha2

android studio导jar包找不到类的解决方法