Dependencias transitivas para la biblioteca aar local

Estamos haciendo una biblioteca, básicamente para nuestro API, que haríamos la vida más fácil para nuestros desarrolladores externos.

Así que creamos un nuevo proyecto de biblioteca y colocamos Retrofit y algunas otras bibliotecas como dependencias.

dependencies { compile 'com.android.support:appcompat-v7:23.3.0' compile 'com.google.code.gson:gson:2.6.2' compile 'com.squareup.retrofit2:retrofit:2.0.1' compile 'com.squareup.retrofit2:converter-gson:2.0.1' compile 'com.squareup.okhttp3:okhttp:3.2.0' } 

Ahora, cuando lo construimos, produce aar archivo aar .

Pero ahora, cuando ponemos el archivo aar en el directorio libs y lo configuramos como dependencia, todavía tenemos que poner la misma dependencia en el archivo build.gradle del usuario, lo que es una mierda. Debe ser tomado de la biblioteca, ¿no?

 repositories { flatDir { dirs 'libs' } } dependencies { compile(name: 'ourlibrary', ext: 'aar') { transitive = true; } } 

¿Cómo hacer el trabajo transitive = true ?

El archivo aar no contiene las dependencias anidadas (o transitivas ) y no tiene un archivo pom que describe las dependencias utilizadas por la biblioteca.

Esto significa que, si está importando un archivo aar usando un flatDir , debe especificar las dependencias también en su proyecto.

En su caso, añadir transitive=true no resuelve su problema por el motivo descrito anteriormente.

Debe utilizar un repositorio maven (tiene que publicar la biblioteca en un repo privado o público de maven), no tendrá el mismo problema.
En este caso, gradle descarga las dependencias usando el archivo pom que contiene la lista de dependencias.

  • Gradle: descargar Dependencias de aar-library incluidas
  • Error AAPT edificio gradle sin fin
  • El elemento uses-sdk no puede tener un atributo "tools: node"
  • Cómo actualizar módulos importados con modificación de código desde el proyecto de su biblioteca externa en Gradle / Android Studio
  • Facebook Audience Network Ad Sdk dependencia dando error de tiempo de ejecución en la aplicación para Android
  • Android Studio: Excepción de nivel superior inesperada (finalizada con valor de salida distinto de cero 2 ..)
  • Falta la clave api_key / actual con Google Services 3.0.0
  • ¿Cómo puedo añadir Guayaba a mi proyecto de Android Studio?
  • Android Studio muestra Errores (Traducción perdida) después de actualizar
  • ResValue gradle error: Tipo no soportado "String" en "generated.xml"
  • Java.lang.NoClassDefFoundError: Resolución fallida de: Landroid / support / v4 / util / ArrayMap;
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.