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.
- De error al generar la aplicación de tarea apk firmada: packageRelease
- Configuración adecuada para "sonar.libraries" en un moderno proyecto Gradle Android
- Versión de compilación de Android Gradle EXCEPTION FROM SIMULATION error
- Error al resolver la dependencia de RXJava
- Android gradle errores de comandos androidDependencies
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
?
- Gradle 14.4 falla al generar - No se encontró el método DSL de Gradle 'packageName ()'
- ID de paquete observado 'build-tools; 20.0.0' en una ubicación incoherente
- Error de generación de Gradle con java 1.8, herramienta de compilación 2.2.0-alpha4, habilitar jackOptions
- Android Studio Múltiples archivos dex error gradle
- Error al resolver la biblioteca en el estudio de Android
- Android Build Tools 1.1.0 - Lint falla en el identificador de problema desconocido "ImproperProjectLevelStatement"
- Problema de generación de Gradle 3.0.0-beta1
- Cómo excluir un archivo de un archivo de biblioteca Android .AAR con gradle
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.
- Incompatibilidad de Google Play Services
- Escribir la implementación c # de la clase abstracta en línea?