Dependencias transitivas no resueltas para una biblioteca aar usando gradle

He investigado un tiempo y probablemente vi las respuestas más populares aquí relacionadas con aar y dependencias transitivas, pero de alguna manera todavía no está claro para mí cómo hacer que esto funcione.

Asi que:

Tengo la biblioteca del androide con la configuración determinada del gradle:

apply plugin: 'android-library' apply plugin: 'android-maven' version = "1.0.0" group = "com.somepackage" buildscript { repositories { mavenCentral() mavenLocal() } dependencies { classpath 'com.github.dcendents:android-maven-plugin:1.0' } } android { compileSdkVersion 19 buildToolsVersion '19.0.3' defaultConfig { minSdkVersion 10 } } repositories { maven { url 'http://www.bugsense.com/gradle/' } } dependencies { provided 'com.google.android.gms:play-services:+' provided 'com.android.support:appcompat-v7:+' compile 'com.google.code.gson:gson:2.2.4' compile 'com.bugsense.trace:bugsense:3.6' compile 'commons-net:commons-net:3.3' } 

Entonces lo estoy desplegando al repo del maven local con la gradle install . El archivo POM de la biblioteca desplegada tiene este aspecto:

 <?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>com.sprezzat</groupId> <artifactId>app</artifactId> <version>1.0.0</version> <packaging>aar</packaging> <dependencies> <dependency> <groupId>com.bugsense.trace</groupId> <artifactId>bugsense</artifactId> <version>3.6</version> <scope>compile</scope> </dependency> <dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.3</version> <scope>compile</scope> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.2.4</version> <scope>compile</scope> </dependency> </dependencies> </project> 

Y finalmente gradle config de mi aplicación android utilizando la biblioteca anterior como una dependencia:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.+' } } apply plugin: 'android' repositories { mavenCentral() mavenLocal() } android { compileSdkVersion 15 buildToolsVersion "19.0.2" defaultConfig { minSdkVersion 10 targetSdkVersion 18 } } dependencies { compile 'com.google.android.gms:play-services:+' compile 'com.android.support:appcompat-v7:+' compile 'com.somepackage:LIBRARY_NAME:1.0.0@aar' } 

Y después de implementar la aplicación en el teléfono estoy recibiendo NoClassDefFoundError para las clases pertenecientes a las dependencias de compilación de mi biblioteca de Android.

Inspeccionar mis dependencias de aplicaciones de Android con dependencias de gradle dependencies :

 apk - Classpath packaged with the compiled main classes. +--- com.google.android.gms:play-services:+ -> 4.3.23 | \--- com.android.support:support-v4:19.0.1 -> 19.1.0 +--- com.android.support:appcompat-v7:+ -> 19.1.0 | \--- com.android.support:support-v4:19.1.0 \--- com.somepackage:LIBRARY_NAME:1.0.0 

De acuerdo con el árbol anterior, no se detectan todas las dependencias transitivas. ¿Dónde está el problema y cómo se debe hacer correctamente?

3 Solutions collect form web for “Dependencias transitivas no resueltas para una biblioteca aar usando gradle”

He resuelto mi problema estableciendo atributo transitive para mi dependencia aar:

 compile ('com.somepackage:LIBRARY_NAME:1.0.0@aar'){ transitive=true } 

Usted no debe usar "@aar", si el uso "@" se convierte en " Notación de artefacto solamente ", si desea usar "@" y desea tener dependencia transitiva, debe agregar "transitive = true"

Pruebe esto si está utilizando aar localmente:

 compile(project(:your-library-name)) { transitive=true } 
  • Mostrar el cambio de método de notificación en android?
  • Apache HttpClient HttpRequestRetryHandler nunca invocado
  • ¿Cómo administrar el montón nativo?
  • Cómo cargar Android v7 soporte de la biblioteca en SBT Android Project?
  • IllegalArgumentException en unlockCanvasAndPost (fondo de pantalla en vivo Android)
  • Cómo enviar datos a la misma aplicación instalada en otro dispositivo android usando wifi
  • Android: ¿Cómo leer el archivo en bytes?
  • OpenCV de Android: No se encontró identificador de recurso para el atributo 'camera_id' en el paquete
  • Llame a onSaveInstanceState sin llamar a super.onSaveInstanceState (outState)
  • Cómo obtener la velocidad de desplazamiento en un ListView?
  • IllegalArgumentException Surface.nativeLockCanvas, Choreographer, BufferQueue
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.