No se pudo encontrar la propiedad 'processManifest' en com.android.build.gradle.internal.api.ApplicationVariantImpl
Actualmente estoy intentando actualizar Android Studio a 1.0.0-RC. Esto parece requerir el complemento Gradle para Android 1.0.0-rc1. Después de la actualización, comencé a tener el siguiente error:
`Could not find property 'processManifest' on com.android.build.gradle.internal.api.ApplicationVariantImpl_Decorated@b9da89c.`
Investigando un poco, parece que processManifest
es una de las propiedades obsoletas que se eliminaron en la versión 0.14.3 . ¿Alguna idea de cuál es el nuevo nombre de la propiedad? La misma guía del usuario no se ha actualizado para la nueva versión, por lo que no puedo encontrar ninguna documentación al respecto.
EDITAR: Aquí está el código que necesita la propiedad. Lo uso para inyectar algunos valores de tiempo de compilación en el manifiesto:
applicationVariants.all { variant ->
variant.processManifest << {
def manifestOutFile = variant.processManifest.manifestOutputFile
def newFileContents = manifestOutFile.getText('UTF-8')
.replace("{GOOGLE_MAPS_KEY}", variant.buildType.ext.google_maps_key)
manifestOutFile.write(newFileContents, 'UTF-8')
}
}
También recibí este error después de actualizar a Android Studio 1.0.0 en el canal Beta. Sin embargo, no pude encontrar ninguna referencia en mis propios archivos gradle a processManifest
. Después de buscar un poco, me di cuenta de que necesitaba un nuevo complemento de Gradle de Robolectric:
https://github.com/robolectric/robolectric-gradle-plugin/releases
El uso de la versión 0.14.0 del complemento Robolectric Gradle (y la versión 2.4 de Robolectric) resolvió el error.
No he podido encontrar una solución al problema, sino simplemente una solución alternativa. El complemento Android Gradle La versión 0.11 presenta una nueva API llamada Manifest merger . Permite lograr lo mismo que mi truco me permitió hacer.
Estos son los cambios necesarios:
- Rodea cualquier variable que inyectes en tu manifiesto con
"${GOOGLE_MAPS_KEY}"
Defina un
manifestPlaceholders
mapa en cada BuildType. Eso es:buildTypes { debug { manifestPlaceholders = [GOOGLE_MAPS_KEY: "xxxxxxxxxxxxxxxxxxxx"] } release { manifestPlaceholders = [GOOGLE_MAPS_KEY: "xxxxxxxxxxxxxxxxxxxx"] } }
¡Eso es todo! El complemento reemplazará automáticamente esas variables en su Manifiesto. ¡Con buena pinta!