Biblioteca de Android AAR dependiendo de otra biblioteca

Hola Tengo un proyecto de la biblioteca de Android que produce un AAR.

Todo es bueno pero cuando uso el AAR en otro proyecto consigo este error:

java.lang.NoClassDefFoundError: com.squareup.picasso.Picasso 

El AAR hace uso de picasso, ¿es posible exportar las dependencias del AAR también al generar uno?

¿Cómo puede uno ir sobre la creación de un local maven repo.

ADVERTENCIA: la siguiente receta funciona, pero probablemente podría usar mejoras, ya que estoy lejos de ser un experto Maven. Yo martillado este enfoque el año pasado para su uso con mis bibliotecas CWAC.

Paso # 1: Agregue classpath 'com.github.dcendents:android-maven-plugin:1.0' al bloque de dependencies de build.gradle archivo build.gradle del proyecto de su biblioteca. También agregue instrucciones de version y de group para proporcionar esa información sobre su AAR.

Paso # 2: Utilice gradle install para compilar el AAR e instalarlo en el repositorio Maven local predeterminado.

Paso # 3: Normalmente, se agregaría mavenLocal() al bloque de dependencies de su proyecto de aplicación para recoger el AAR a través de su ID de artefacto. Eso puede estar funcionando de nuevo, aunque se rompió un poco. En su lugar, utilice maven { url "${System.env.HOME}/.m2/repository" } como una solución a corto plazo.

Así, por ejemplo, el archivo build.gradle su proyecto de biblioteca podría contener:

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.+' classpath 'com.github.dcendents:android-maven-plugin:1.0' } } apply plugin: 'android-library' apply plugin: 'android-maven' version '0.4.0' group 'some.likely.group.name.goes.here' repositories { mavenCentral() } dependencies { compile 'com.squareup.picasso:picasso:2.2.0' compile fileTree(dir: 'libs', include: '*.jar') } android { // as normal } 

Utilizarías gradle install para publicar el JAR en tu repo local de Maven. Su proyecto de aplicación tendría las siguientes cosas en su build.gradle :

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.9.+' } } apply plugin: 'android' repositories { mavenCentral() maven { url "${System.env.HOME}/.m2/repository" } // mavenLocal() } dependencies { compile 'some.likely.group.name.goes.here:name-of-library:0.4.0' } android { // as normal } 

Donde reemplazar:

  • some.likely.group.name.goes.here

  • 0.4.0 con un número de versión en formato XYZ

  • name-of-library será el nombre de directorio que contiene el proyecto de biblioteca de Android (por ejemplo, presentation o foo )

  • Android: el niño especificado ya tiene un padre. Debe llamar a removeView () en el padre del niño primero
  • Cómo calcular el ancho de la fuente de cadena en píxeles?
  • ValueAnimator sólo se repite una vez
  • No se puede actualizar un diseño después de agregar una vista (sólo se produce en CustomAdapter)
  • Android: ¿Cómo puedo establecer un listener para el MenuButton?
  • Leer varias etiquetas NFC simultáneamente en Android
  • BadTokenException: No se puede agregar la ventana
  • Libgdx: configurar otra pantalla, pero los botones permanentes de la pantalla antigua están activos
  • Proyecto de Android que utiliza httpclient -> http.client (apache), método post / get
  • ¿Cómo escribir un mapa en un paquete?
  • Dibujar línea discontinua en Android mediante programación
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.