una ultima tutorial studio paso hacer desde descargar como cero aplicacion android gradle android-gradle

android - ultima - kotlin tutorial



No se pudo encontrar el método android() para argumentos al crear un proyecto de Android desde gradle (2)

Esto es en realidad una limitación en la forma en que el complemento de android-gradle está estructurado y hay una solución temporal documentada en el sitio web de herramientas de Android .

Si tiene muchos módulos de Android, puede evitar establecer manualmente los mismos valores en todos ellos. Debido a que probablemente tenga una combinación de proyectos android-android-library, no puede aplicar estos complementos a través de un cierre de subproyectos.

La solución propuesta es:

... en build.gradle del proyecto raíz:

ext { compileSdkVersion = 19 buildToolsVersion = "19.0.1" }

en todos los módulos de Android:

android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion }

...

Creo que noté que esto no funciona en versiones anteriores de Gradle (lo estaba intentando con 1.10 y obtuve un error). Sin embargo, con Gradle 2.1 esto parece funcionar correctamente.

Tengo un proyecto de Android basado en gradle con 4 submódulos: dos bibliotecas y dos aplicaciones. Estaba tratando de simplificar los archivos build.gradle de cada submódulo moviendo algunos de los códigos / configuraciones compartidos al archivo build.gradle de nivel superior y los subprojects {} para hacer que ese código esté disponible para cada submódulo.

La estructura del sistema de archivos tiene este aspecto:

Root |- App1/ |- App2/ |- Lib1/ |- Lib2/ |- build.gradle |- settings.gradle

El problema es que si agrego una sección android {} a los subproyectos, las tareas de gradle fallan. Por ejemplo, este es mi archivo build.gradle de nivel superior:

subprojects { project -> android { buildToolsVersion "20.0.0" } }

Al ejecutar Gradle se devuelve esto:

¿Qué salió mal? Se produjo un problema al evaluar el proyecto raíz ''android''. No se pudo encontrar el método android () para los argumentos [build_7dngpra6ldok366maq0on77r7e $ _run_closure3_closure5 @ 43d95624] en el proyecto raíz ''android''.

Busqué publicaciones similares y algunas personas sugieren agregar el apply plugin: ''android'' línea apply plugin: ''android'' a cada subproyecto para exponer el método android() que falta sobre el que gradle se queja. Sin embargo, esa solución no me funciona porque agregaría efectivamente esa línea al proyecto de la biblioteca, que requiere apply plugin: ''android-library'' lugar.

¿Hay alguna forma de usar android {} dentro de los subprojects {} cuando tienes aplicaciones y bibliotecas en el mismo proyecto?


Hay un problema menor con la respuesta del usuario4118620 ... al menos en Gradle 2.10 cuando lo usé. Para tener la clave visible para los módulos de Android. Necesitamos ubicar la extensión bajo el alcance del subproyecto

En el archivo raíz gradle necesita agregar lo siguiente

subprojects { ext{ <android_compile_sdk_key> = <sdk_value> <android_build_key> = <build_value> } }

En cada uno de los submódulos, simplemente sigue lo que mencionó anteriormente

android { compileSdkVersion <android_compile_sdk_key> buildToolsVersion <android_build_key> }

Puede encontrar los documentos sobre el gradle Multibuild en el siguiente enlace

https://docs.gradle.org/current/userguide/multi_project_builds.html#sub:adding_specific_behavior