Android Studio comment emballer un seul AAR à partir de plusieurs projets de bibliothèque?

Je construis un projet de bibliothèque Android, qui dépend d’une autre bibliothèque interne.

Je me demande s’il existe un moyen de regrouper une seule bibliothèque AAR, qui contient déjà une bibliothèque interne. Je voudrais partager seulement 1 package de bibliothèque AAR avec mes développeurs d’applications.

Voici à quoi mes fichiers build.gradle ressemblent actuellement, mais ils produisent actuellement des fichiers AAR distincts et doivent être inclus dans build.gradle d’Application. Au fur et à mesure que l’application est créée par une autre entreprise, nous devons partager le fichier AAR final avec eux et non les projets de bibliothèque complets.

—– internalLib ——– >>>>>>>>>>

buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.7.+' } } apply plugin: 'android-library' repositories { mavenCentral() } android { comstackSdkVersion 18 buildToolsVersion '18.1.1' } dependencies { comstack 'com.android.support:support-v4:18.0.0' } 

—– externalLib ——–

 buildscript { repositories { mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:0.7.+' } } apply plugin: 'android-library' repositories { mavenCentral() } android { comstackSdkVersion 18 buildToolsVersion '18.1.1' } dependencies { comstack 'com.android.support:support-v4:18.0.0' comstack project(':internalLib') } 

Il n’y a pas de mécanisme pour combiner la bibliothèque. C’est un peu compliqué car vous voudrez probablement contrôler les dépendances à fusionner (par exemple, vous ne voulez probablement pas inclure support-v4). Vous devez également fusionner les ressources et le manifeste Android.

En ce moment, il n’y a aucun moyen de pirater facilement quelque chose, sauf si vous êtes sûr que les ressources ne sont pas en conflit entre les deux dossiers (par exemple, ssortingngs_a.xml dans une lib et ssortingngs_b.xml dans l’autre). De cette façon, vous pouvez simplement “fusionner” les deux dossiers en les copiant tous les deux au même endroit (par opposition à une fusion au niveau de la résolution Android).

Pour le manifeste, cela serait plus compliqué, mais réalisable avec du code personnalisé.

Fournir un mécanisme intégré pour cela est très faible pour notre priorité, alors ne vous y attendez pas de sitôt.