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_NAME
、VERSION_CODE
、VERSION_NAME
、BUILD_TYPE
、FLAVOR
和FLAVOR_<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:找不到 com.android.tools.build:gradle:2.0.0-alpha2