¿Cómo incluir un módulo de biblioteca de Android en otra biblioteca?
Estoy construyendo una biblioteca de Android que se empaqueta como un aar y se distribuye a desarrolladores de terceros.
La estructura es bastante simple:
- En una compilación de Android Gradle, ¿cómo excluir las dependencias de un archivo jar incluido?
- Compile varios módulos en la dependencia de Gradle de Android
- 'No se puede resolver el símbolo' y 'No se encontró ningún recurso que coincida con el nombre dado' - no un duplicado
- Gradle force build tools version en bibliotecas de terceros?
- Android Studio y Gradle - falla la compilación
Proyecto — bibliotecaA — bibliotecaB
LibraryA requiere libraryB, que es por qué tiene esto en su archivo gradle:
compile project(':libraryB')
Y settings.gradle tiene
include ':libraryB', ':libraryA'
Pero si construyo el proyecto como un aar sólo incluye libraryA. ¿Qué me estoy perdiendo?
Leí las respuestas a esto: Android Studio cómo empaquetar AAR único de varios proyectos de la biblioteca?
¿Todavía no es posible? Supongo que la división de su código en múltiples módulos no es mala práctica?
- No se pudo actualizar el proyecto Gradle (AS 0.8.2, Mac)
- No se pudo notificar al oyente de evaluación del proyecto en Android gradle
- Error: (27, 13) Error al resolver: com.google.firebase: firebase-core: 9.8.0
- Proguard - también utiliza archivos proguard de los módulos
- Convenciones de nomenclatura de carpetas para variantes de generación de grados
- Forma correcta de excluir R.java de javadoc usando gradle
- Mejor lugar para poner versionCode / versionName? build.gradle vs AndroidManifest.xml
- Gradle error con un signo de dólar
Puede probar la secuencia de comandos de fat-aar.gradle publicada aquí: https://github.com/adwiv/android-fat-aar
¿Todavía no es posible?
Correcto, al menos a través de las herramientas de compilación estándar. Es posible que haya plugins, scripts u otras recetas de terceros para crear un "AAR de grasa" de un AAR y sus dependencias.
Supongo que la división de su código en múltiples módulos no es mala práctica?
Tener múltiples módulos es perfecto para el desarrollo local. Sin embargo, los módulos son dependencias. Cuando envíe una biblioteca, debe satisfacer todas esas dependencias, que incluirán cualquiera de sus módulos. Esto, a su vez, significa que los módulos de los que depende su biblioteca también deben ser bibliotecas, distribuidas de tal manera que un consumidor de su biblioteca de nivel superior pueda acceder a esas dependencias.
- Asegúrese de que el nombre de clase existe, es público y tiene un constructor vacío para fragmento público con nombre de clase y constructor vacío
- ¿Tiene soporte para Android log2