web-dev-qa-db-fra.com

Comment créer un fichier jar pour Android Library Project

Je dois créer une bibliothèque que je vais exporter vers le client dans un fichier jar. Est-il possible de créer un pot avec les ressources qu'il contient?

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

72
Aayush Rana

Ceci est le plus proche que vous pouvez obtenir:

Étape n ° 1: Créez un projet de bibliothèque Android normal) et faites-le fonctionner.

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

Étape n ° 3: Créez un fichier JAR à partir du projet de bibliothèque Java à partir du projet de bibliothèque d'origine Android, et placez-le, puis placez-le dans le répertoire libs/. de la copie réalisée à l’étape 2. Vous devriez pouvoir exécuter ProGuard manuellement sur ce fichier JAR, bien que je n’aie pas essayé de le faire.

Étape n ° 4: Supprimez tout le contenu du répertoire src/ Du projet de bibliothèque copié, en laissant le répertoire src/ Vide.

Étape 5: Compressez ou distribuez le projet de bibliothèque copié Android.

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 consiste à présent à empaqueter votre projet de bibliothèque sous la forme d'un AAR, qui constitue le moyen natif d'Android de créer un artefact réutilisable à partir de votre code compilé et requis Ressources. À l'heure actuelle (juillet 2014), Gradle pour Android, Android Studio et le Android-maven-plugin Peut créer et utiliser des AAR.

80
CommonsWare

Cela marche!

  1. Faites de votre projet de bibliothèque un projet normal en désélectionnant l’indicateur IsLibrary.
  2. Exécutez votre projet en tant que Android. (Aucune erreur ne sera affichée)
  3. Vous trouverez un fichier .jar dans le dossier bin avec .apk.
  4. Donnez-vous .jar qui veulent utiliser votre bibliothèque.
  5. Dites-leur simplement d'importer un fichier JAR externe dans le chemin de génération.

Cela fonctionnera bien avec toutes les ressources. En vous remerciant tous. pour votre réponse

21
Aayush Rana

Suivez les étapes ci-dessous pour obtenir un fichier 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. Nettoie. Vous obtiendrez un fichier libraryProjectName.jar dans le dossier bin. (Assurez-vous que "is Library" est sélectionné dans le projet de bibliothèque.
  2. Copiez le fichier .jar dans le dossier libs de votre application cible
  3. Actualisez votre espace de travail et appuyez sur Ctr+Shift+O (sous Windows/Linux) ou Cmd+Shift+O (sur Mac) pour résoudre les dépendances d'importation de la bibliothèque ajoutée.

Commentez en cas de problème.

13
Akshat Singhal

Testé avec adt 22.2.1

  1. Créez votre projet de bibliothèque
  2. Créer un projet vide
  3. Ajouter un projet de bibliothèque à votre projet vide
  4. Projet de construction
  5. Dans le dossier/gen, vous trouverez une classe pour votre projet de bibliothèque. Elle contiendra vos ressources pour le projet lib.
  6. Exporter le fichier JAR (sélectionnez uniquement cette classe ... à partir du dossier/gen)
  7. Exporter JAR depuis votre projet lib
  8. Renommez les fichiers exportés en Zip et fusionnez le contenu
  9. Renommez le fichier final en JAR et ajoutez-le au projet.
3
coltbg

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

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

Vérifiez 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. Aller aux propriétés. Choisissez Android. Assurez-vous que sa bibliothèque est cochée.

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

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

Citant des docs

Un projet de bibliothèque diffère d'un projet d'application standard Android en ce sens que vous ne pouvez pas le compiler directement sur son propre .apk et l'exécuter sur un périphérique Android. De même, vous ne pouvez pas exporter le projet de bibliothèque dans un fichier JAR autonome, comme vous le feriez pour une vraie bibliothèque, mais compilez-la indirectement en faisant référence à la bibliothèque dans l'application dépendante et en la construisant.

2
Raghunandan

Selon la dernière Android Studio v1.2, c’est aussi simple que de prendre un gâteau. Déjà répondu à la solution complète avec des captures d’écran sur ce lien

1
Nishant.

Voici un moyen simple de le faire avec fourmi, que l’on trouve dans le code source Volley. Ajoutez le code ci-dessous à custom_rules.xml puis générez-le avec ant jar

<?xml version="1.0" encoding="UTF-8"?>
<project name="volley-rules" default="help">

  <!-- A rule to generate the JAR for inclusion in an Android
       application. Output file will be bin/volley.jar -->
  <target name="jar" depends="-compile">
    <jar destfile="bin/volley.jar"
         basedir="bin/classes" />
  </target>
</project>
1
schwiz

Avec Eclipse ADT v22.6.2, vous pouvez simplement exporter jar en cliquant sur Fichier-> Exporter> Java> Fichier JAR, sélectionnez les répertoires et la destination où vous souhaitez les enregistrer.

0
someUser