¿Cómo forzar a un subproyecto gradle a usar buildToolsVersion / compileSdkVersion del proyecto raíz?

Buscando alguna forma inteligente de hacer esto sólo una vez, por ejemplo

allprojects { android { buildToolsVersion '18.0.1' compileSdkVersion 18 defaultConfig { targetSdkVersion 18 } } } 

De lo contrario necesito subir esta cosa en cada subproyecto (por ejemplo, en la biblioteca referenciada como volley o viewpagerindicator) cada vez que hay una nueva actualización de SDK disponible.

Normalmente, el proyecto raíz no contendría código y, por lo tanto, utilizaría subprojects . También tendrás que aplicar el complemento de Android antes del bloque de android {} . Aparte de eso, espero que esto funcione.

Respondí en otra pregunta:

Encontré una solución aquí .

Lo copiará aquí por si acaso:

En usted root build.gradle add

 ext { compileSdkVersion = 20 buildToolsVersion = "20.0.0" } subprojects { subproject -> afterEvaluate{ if((subproject.plugins.hasPlugin('android') || subproject.plugins.hasPlugin('android-library'))) { android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion } } } } 

Esto se aplicará compileSdkVersion y buildToolsVersion a cualquier módulo de android que tenga.

Y en build.gradle de su proyecto principal cambie dependencias a esto:

 compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion rootProject.ext.buildToolsVersion 

Básicamente usted los está definiendo una vez y podría utilizar de dondequiera.

Aclamaciones.

  • Android java.exe terminado con valor de salida no nulo 1
  • Creación de una aplicación para Android con targetSdkVersion de 25 y minSdkVersion 19
  • ¿Por qué todavía estoy recibiendo java.lang.NoClassDefFoundError: android.support.v7.appcompat.R $ attr?
  • Conflicto con dependencia 'com.android.support:support-annotations'. Las versiones resueltas para la aplicación (23.1.0) y la aplicación de prueba (23.0.1) difieren
  • Gradle experimental incluir directorios de archivos a través de la directiva srcDir srcFile
  • JNI y Gradle en Android Studio
  • ¿Qué significa "@aar" en la tarea 'compilar' de gradle
  • La ejecución falló para la tarea ': app: transformClassesWithDexForDebug'
  • Cómo actualizar versiones de Apache HttpClient en Android
  • No se pudo encontrar com.google.android.gms: play-services: 5.0.77
  • Saltar prueba para la variante de construcción específica en Android + Gradle?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.