Android Studio 更新 0.4.0 找不到 buildConfig()
将 Android Studio 升级到 0.4.0 版本后,出现新错误:
After upgrading Android Studio to version 0.4.0 I got a new error:
我通过 gradle-wrapper.properties 升级到 gradle 1.9
I upgraded to gradle 1.9 via the gradle-wrapper.properties
distributionUrl=http\://services.gradle.org/distributions/gradle-1.9-all.zip
并在 build.gradle 中升级了 gradle 版本
and upgraded the gradle version in build.gradle
dependencies {
classpath 'com.android.tools.build:gradle:0.7.+'
}
现在我的项目正在重新构建.
Now my project is building again.
我为不同的 productFlavors 定义了一些字符串常量:
I have some String constants defined for different 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}.>
Could not find method buildConfig() for arguments [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 上运行
Everything was working with Android Studio 3.7
我无法使用评论(太长).您可以在 gradle 1.9 的新增功能中找到它.
I can't use the comment (too long). You can find it in the what's new in gradle 1.9.
DSL 变化:buildConfigLine
被替换为 buildConfigField
:
DSL Changes:
buildConfigLine
is replaced bybuildConfigField
:
buildConfigField "boolean", "MY_FLAG", "true"
您可以覆盖在风格或构建类型中的默认配置中定义的字段.请参阅基本"示例.
You can override fields defined in default config in flavors or build types. See 'basic' sample.
构建配置现在还自动包含更多用于 PACKAGE_NAME
、VERSION_CODE
、VERSION_NAME
、BUILD_TYPE
、FLAVOR
以及 FLAVOR_
如果有多个风味维度.
Build Config also now automatically contain more constants for PACKAGE_NAME
, VERSION_CODE
, VERSION_NAME
, BUILD_TYPE
, FLAVOR
as well as FLAVOR_<group>
if there are several flavor dimensions.
所以如果你有这样的一行:
So if you have a line like this:
buildConfig "public static final boolean MY_FLAG = true;"
您现在应该将其替换为以下内容:
You should now replace it for something like this:
buildConfigField "boolean", "MY_FLAG", "true"
就你而言:
buildConfigField "String" , "MY_KEY" , "\"XXXXX-XXXXX-XXX\""
更新 12/09/2015:
使用新的实验性插件 (0.2.1),您必须使用:
With the new experimental plugin (0.2.1) you have to use:
buildConfigFields.with {
create() {
type = "String"
name = "MY_KEY"
value = "MY_VALUE"
}
}