La actualización 0.4.0 de Android Studio no pudo encontrar buildConfig()
android-studio gradle (2)
Esta versión introduce un cambio:
buildConfigField "<type>", "<name>", "<value>"
Si tienes una línea como esta:
buildConfig "public static final boolean FLAG = true;"
Ahora tienes que usar:
buildConfigField "boolean", "FLAG", "true"
Para los valores de cadena puede utilizar:
buildConfigField "String", "FOO", "/"foo/""
Nota: La anterior propiedad DSL:
buildConfigLine "<value>"
ha cambiado a
buildConfigField "<type>", "<name>", "<value>"
Después de actualizar Android Studio a la versión 0.4.0, recibí un nuevo error:
Actualicé a gradle 1.9 a través de gradle-wrapper.properties
distributionUrl=http/://services.gradle.org/distributions/gradle-1.9-all.zip
y actualizado la versión de gradle en build.gradle
dependencies {
classpath ''com.android.tools.build:gradle:0.7.+''
}
Ahora mi proyecto está construyendo de nuevo.
Tengo algunas constantes de cadena definidas para diferentes 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/";"
}
}
Y aquí está el nuevo error.
No se pudo encontrar el método buildConfig () para los argumentos [public static final String MY_KEY = "";] en GroupableProductFlavorDsl_Decorated {name = local, minSdkVersion = -1, targetSdkVersion = -1, renderscriptTargetApi = -1, renderscriptSupportMode = null, forcastscastspest versionCode = -1, versionName = null, packageName = null, testPackageName = null, testInstrumentationRunner = null, testHandleProfiling = null, testFunctionalTest = null, signatureConfig = null, resConfig = null}.
Todo funcionaba con Android Studio 3.7.
No puedo usar el comentario (demasiado largo). Lo puedes encontrar en la novedad de gradle 1.9.
Cambios de DSL:
buildConfigLine
es reemplazado porbuildConfigField
:
buildConfigField "boolean", "MY_FLAG", "true"
Puede anular los campos definidos en la configuración predeterminada en tipos o tipos de compilación. Ver muestra ''básica''.
Build Config ahora también contiene automáticamente más constantes para
PACKAGE_NAME
,VERSION_CODE
,VERSION_NAME
,BUILD_TYPE
,BUILD_TYPE
yFLAVOR_<group>
si hay varias dimensiones de sabor.
Así que si tienes una línea como esta:
buildConfig "public static final boolean MY_FLAG = true;"
Ahora deberías reemplazarlo por algo como esto:
buildConfigField "boolean", "MY_FLAG", "true"
En tu caso:
buildConfigField "String" , "MY_KEY" , "/"XXXXX-XXXXX-XXX/""
ACTUALIZACIÓN 12/09/2015:
Con el nuevo plugin experimental (0.2.1) tienes que usar:
buildConfigFields.with {
create() {
type = "String"
name = "MY_KEY"
value = "MY_VALUE"
}
}