¿Cómo gradle maneja multi módulos con diferentes versiones de la biblioteca de soporte v4?
Tengo un proyecto de Android que depende de diferentes módulos y cada módulo depende de la revisión diferente de la androide soporte-v4 biblioteca
1) Mi aplicación también depende de la última versión de Android support-v4 biblioteca (revisión 21) por lo que en esta build.gralde poner una línea como esa:
- Gradle no puede eliminar directorio debido a .fuse_hidden
- Gradle Android: Cómo mostrar los resultados de las pruebas sin usar --info
- Después de actualizar - Error: No se pudo encontrar: com.google.android.gms: play-services: 5.2.8
- ¿Cómo comprobar el tamaño de las dependencias en una aplicación para Android?
- Gradle construye a infinito sin errores
dependencies { compile 'com.android.support:support-v4:21.0.0' }
2) SDK de Facebook (v.3.15) módulo que también depende de la biblioteca de soporte de Android v4, pero la revisión 13 y su archivo build.gradle dice:
dependencies { compile 'com.android.support:support-v4:13.0.+' compile files('../libs/bolts.jar') }
3) y un módulo más que, podemos llamar a Module3 en ese caso, también depende del soporte-v4 pero con una revisión diferente que los otros módulos, como eso:
dependencies { compile 'com.android.support:support-v4:19.0.+' compile files('../libs/bolts.jar') }
Preguntas:
1) ¿Cómo maneja el gradle diferentes revisiones de la biblioteca de soporte-v4?
2) ¿Qué hace exactamente?
3) ¿Qué significa en términos de tamaño apk?
- Android Studio: Añadir jar como biblioteca?
- Problemas con la adición de dependencias de telas a un proyecto construido cordova
- Añadir Android Library a un proyecto existente en Android Studio 0.3.6
- Problemas al iniciar error en Android Studio cuando packageDebug en Max OS X
- Android Studio atascado al crear nuevo Proyecto en Gradle: Configurar Proyecto o Gradle: Resolver Dependencias ': classpath:'
- Agregar claves de liberación en el complemento experimental de Gradle para Android
- el ensamblaje del gradleRelease utiliza la llave / el certificado incorrectos
- Proguard gradle debug build pero no las pruebas
En este caso Gradle fallará la compilación (probado en mi piel y no encontré otras soluciones) "Desafortunadamente" tienes que usar la misma versión de soporte en cualquier módulo.
De docs.gradle.com :
Gradle ofrece las siguientes estrategias de resolución de conflictos:
-
Más nuevo : Se utiliza la versión más reciente de la dependencia. Esta es la estrategia por defecto de Gradle, ya menudo es una opción apropiada, siempre y cuando las versiones sean compatibles hacia atrás.
-
Fail : Un conflicto de versión resulta en un error de generación. Esta estrategia requiere que todos los conflictos de versiones se resuelvan explícitamente en el script de compilación. Consulte ResolutionStrategy para obtener detalles sobre cómo elegir explícitamente una versión en particular.
Aunque las estrategias presentadas anteriormente suelen ser suficientes para resolver la mayoría de los conflictos, Gradle proporciona mecanismos más finos para resolver conflictos de versiones:
-
Configurar una dependencia de primer nivel como forzada . Este enfoque es útil si la dependencia en conflicto ya es una dependencia de primer nivel. Vea ejemplos en DependencyHandler .
-
Configurar cualquier dependencia (transitiva o no) como forzada . Este enfoque es útil si la dependencia en conflicto es una dependencia transitiva. También se puede utilizar para forzar versiones de dependencias de primer nivel. Ver ejemplos en ResolutionStrategy
-
Las reglas de resolución de dependencia son una característica de incubación introducida en Gradle 1.4 que le da un control detallado sobre la versión seleccionada para una dependencia particular.
- Acelerado por hardware
- Agregar una autoridad de certificado mediante programación al mismo tiempo que mantiene certificados SSL de sistema de Android