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.
- LintOptions para la herramienta de compilación experimental de Gradle en Android Studio 1.3
- Cómo excluir un archivo de un archivo de biblioteca Android .AAR con gradle
- Nueva advertencia al crear una aplicación android con gradle
- Gradle no excluirá un módulo según lo solicitado
- ¿Cómo sobreescribir la URL del repositorio de dependencia de Robolectric?
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
?
- ¿Cómo puedo suprimir las advertencias al compilar una biblioteca de Android con gradle?
- ¿Cómo incluir dependencias en la biblioteca .aar?
- Com.android.builder.packaging.DuplicateFileException: Archivos duplicados copiados en APK META-INF / maven / com.fasterxml.jackson.core / jackson-databind / pom.xml
- ¿Cómo excluir recursos específicos de una Depedencia AAR?
- Error de ejecución de la tarea ': app: dexDebug'
- Error: Error de ejecución para la tarea ': app: transformClassesWithDexForDebug'. > Com.android.build.api.transform.TransformException: .. valor de salida distinto de cero 3
- ¿Cómo puedo incluir dependencias en mi biblioteca de Android?
- Agregue el producto a la experimental Android gradle plugin library
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?