2017-09-06 5 views
0

J'ai un module Android à partir duquel j'exporte un fichier .aar. J'ai importé ce fichier .aar avec Android Studio Wizard, projet compile, mais tombe en panne à l'exécution avec "java.lang.NoClassDefFoundError". J'ai vérifié avec le débogueur, Class.forName ("retrofit2.Retrofit") .. pas trouvé. Après avoir décompressé le .aar & en vérifiant le fichier classes.jar, je ne vois que mes paquets, de toute évidence il n'a pas empaqueté les librairies que je référençais dans build.gradle (ex: Okhttp, Retrofit, Gson ..).Comment puis-je exporter une bibliothèque Android en tant que .aar et conserver mes dépendances Gradle?

Ce que je veux est un moyen de conserver mes dépendances build.gradle. Je préférerais que ce soit emballé dans le .aar si possible, sinon quelle est l'option? Forcer le client à ajouter dans son propre gradle mes dépendances?

Informations supplémentaires: Je n'ai que des dépendances, pas de bocaux.

Répondre

1

Distribuez l'AAR via un référentiel d'artefacts. Les métadonnées dans le référentiel d'artefacts (par exemple, le fichier POM) contiendront les informations sur vos dépendances transitives. Il aura également des informations sur la version de votre AAR, de sorte que les consommateurs des AAR disposent d'informations claires sur la version qu'ils utilisent. C'est ainsi que presque tout le reste que vous utilisez est distribué: bibliothèques de support, Retrofit, etc.

+1

Propre et soigné comme toujours;) J'ajouterais que vous pouvez trouver plus sur Artifactory ici: https://jeroenmols.com/ blog/2015/08/06/artifactory/Et n'oubliez pas d'ajouter les dépendances dans la tâche pom à la classe de publication, car elles ne sont pas incluses dans la tâche de publication standard. – w00ly