tutorial español ejemplo dagger2 curso android gradle android-gradle

español - ¿Cómo inyectar la configuración de Android a cada subproyecto con Gradle?



dagger2 tutorial español (1)

La solución a esto resultó ser:

subprojects{ afterEvaluate { android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 9 targetSdkVersion 14 } } } }

Hasta donde yo sé, esto se debe a que para procesar / usar el android {...} en el momento de la evaluación significa que debe estar presente (es decir, escrito explícitamente o incluido como parte de un ''aplicar complemento'') tan pronto como llegue al subproyectos en el archivo de compilación raíz. Y, más exactamente, significa que el proyecto de nivel superior debe tenerlo definido (lo que probablemente no ocurra porque podría no ser una compilación ''android'' o ''android-library''). Sin embargo, si lo empujamos después de la evaluación, entonces puede usar lo que está disponible dentro de cada subproyecto directamente.

Esta pregunta + solución también asume que todos los subproyectos son alguna forma de proyecto de Android (en mi caso cierto, pero no necesariamente para otros). La respuesta más segura sería usar:

subprojects{ afterEvaluate { if(it.hasProperty(''android'')){ android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 9 targetSdkVersion 14 } } } } }

En lugar de duplicar el bloque de configuración de Android en cada uno de los subproyectos:

android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 9 targetSdkVersion 14 } }

Prefiero poner esto en el archivo de compilación de nivel superior / root gradle como:

subprojects{ android { compileSdkVersion 19 buildToolsVersion "19.0.0" defaultConfig { minSdkVersion 9 targetSdkVersion 14 } } }

Sin embargo, esto no funciona. :(

Error: "..No se pudo encontrar el método android () para argumentos ..."