android - libreria - Dependencias transitivas para la biblioteca aar local.
import aar android studio (1)
El archivo aar no contiene las dependencias anidadas (o transitive ) y no tiene un archivo pom que describa las dependencias utilizadas por la biblioteca.
Esto significa que, si está importando un archivo aar utilizando un repositorio de flatDir
, tiene que especificar las dependencias también en su proyecto.
En su caso, agregar transitive=true
no resuelve su problema por el motivo descrito anteriormente.
Debe usar un repositorio de maven (debe publicar la biblioteca en un repositorio de maven privado o privado), no tendrá el mismo problema.
En este caso, gradle descarga las dependencias utilizando el archivo pom que contiene la lista de dependencias.
Estamos haciendo algunas bibliotecas, básicamente para nuestra API, que haríamos la vida más fácil para nuestros desarrolladores externos.
Así que creamos un nuevo proyecto de biblioteca y pusimos 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 apesta. Debería ser sacado de la biblioteca, ¿verdad?
repositories {
flatDir {
dirs ''libs''
}
}
dependencies {
compile(name: ''ourlibrary'', ext: ''aar'') {
transitive = true;
}
}
¿Cómo hacer transitive = true
trabajo?