android android-studio gradle android-gradle build.gradle

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 por buildConfigField :

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 y FLAVOR_<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" } }