74 votes

Comment créer un jar pour un projet de bibliothèque Android

Je dois créer une bibliothèque que je vais exporter vers le client dans un fichier jar. Existe-t-il un moyen de créer un fichier jar contenant les ressources ?

Google adMob dispose d'un tel jar, qui contient un fichier de ressources tel que R$layout.class. Cette page décrit un moyen de le faire mais je n'arrive pas à comprendre exactement comment je suis censé importer le projet de bibliothèque dans une application en utilisant la méthode ci-dessus.

82voto

CommonsWare Points 402670

C'est le plus proche que vous puissiez avoir :

Étape 1 : créer un projet de bibliothèque Android ordinaire et le faire fonctionner.

Étape 2 : Copiez ce projet de bibliothèque Android dans un autre répertoire.

Étape 3 : Créez un JAR à partir des classes Java compilées du projet de bibliothèque Android original, et placez ce JAR dans le fichier libs/ de la copie que vous avez faite à l'étape 2. Vous devriez être capable d'exécuter ProGuard sur ce JAR manuellement, bien que je n'ai pas essayé cela.

Étape 4 : Enlevez tout ce qui se trouve à l'intérieur du src/ du projet de bibliothèque copié, laissant derrière lui un répertoire vide de src/ répertoire.

Étape 5 : Zippez ou distribuez d'une autre manière le projet de bibliothèque Android copié.

Cela vous donnera un projet de bibliothèque Android comme celui de Play Services, où les ressources sont disponibles, mais pas le code source.

UPDATE : Une approche encore meilleure aujourd'hui est de packager votre projet de bibliothèque en tant qu'AAR, qui est la manière native d'Android de créer un artefact réutilisable à partir de votre code compilé plus les ressources requises. À l'heure actuelle (juillet 2014), Gradle pour Android, Android Studio, et le système de gestion de l'information d'Android sont disponibles. android-maven-plugin peut créer et consommer des RAA.

22voto

Aayush Rana Points 528

Ça marche !

  1. Faites de votre projet de bibliothèque un projet normal en désélectionnant le drapeau IsLibrary.
  2. Exécutez votre projet en tant qu'application Android. (Il n'y aura pas d'erreur)
  3. Vous trouverez un fichier .jar dans le dossier bin avec le fichier .apk.
  4. Vous donner .jar qui veulent utiliser votre bibliothèque.
  5. Dites-leur d'importer simplement le jar externe dans le chemin de construction.

Cela fonctionnera bien avec toutes les ressources. Merci à tous pour votre réponse.

14voto

Akshat Singhal Points 1198

Suivez les étapes ci-dessous pour obtenir un jar distribuable de votre bibliothèque (vérifié pour un projet de bibliothèque sans dépendances externes) :

  1. Créez votre projet de bibliothèque. Nettoyez-le. Vous obtiendrez un fichier libraryProjectName.jar dans le dossier bin. (Assurez-vous que "est la bibliothèque" est sélectionné dans le projet de bibliothèque.
  2. Copiez le fichier .jar dans le répertoire librairies de votre application cible
  3. Rafraîchissez votre espace de travail et appuyez sur Ctr+Shift+O (sur Windwows/Linux) ou Cmd+Shift+O (sur Mac) pour résoudre toute dépendance d'importation de la bibliothèque ajoutée.

Commentez en cas de problème.

3voto

coltbg Points 33

Testé avec adt 22.2.1

  1. Créez votre projet de bibliothèque
  2. Créer un projet vide
  3. Ajouter le projet de bibliothèque à votre projet vide
  4. Projet de construction
  5. Dans le dossier /gen, vous trouverez la classe de votre projet de bibliothèque, qui contiendra vos ressources pour le projet de bibliothèque.
  6. Exporter JAR (sélectionner seulement cette classe ... du dossier /gen)
  7. Exporter JAR de votre projet lib
  8. Renommer les fichiers exportés pour zipper et fusionner le contenu
  9. Renommez le fichier final en JAR et ajoutez-le au projet.

3voto

Raghunandan Points 63969

Vous ne pouvez pas empaqueter les fichiers de ressources dans le jar. Vous pouvez exporter votre projet en tant que projet de bibliothèque.

Vous exportez vos classes utilitaires qui ne font pas référence à des ressources dans Android, c'est-à-dire des classes java pures, sous forme de fichier jar.

Consultez le lien ci-dessous

http://developer.Android.com/tools/projects/index.html

Pour faire de votre projet un projet de bibliothèque

Faites un clic droit sur votre projet. Allez dans propriétés. Choisissez Android. Assurez-vous que la case Is Library est cochée.

Pour référencer le projet de bibliothèque dans votre projet Android

Faites un clic droit sur votre projet. Allez dans propriétés. Choisissez Android. Cliquez sur Ajouter. Parcourir et le projet de bibliothèque.

Citation de la documentation

Un projet de bibliothèque diffère d'un projet d'application Android standard en ce sens que vous ne pouvez pas le compiler directement dans son propre fichier .apk et l'exécuter sur un appareil Android. De même, vous ne pouvez pas exporter le projet de bibliothèque vers un fichier JAR autonome, comme vous le feriez pour une véritable bibliothèque. Au lieu de cela, vous devez compiler la bibliothèque indirectement, en faisant référence à la bibliothèque dans l'application dépendante et en construisant cette application.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X