web-dev-qa-db-fra.com

Comment utiliser des fichiers JAR externes dans un projet Android?

J'ai créé un projet Android et ajouté un fichier JAR externe (hessian-4.0.1.jar) à mon projet. J'ai ensuite ajouté le fichier JAR au chemin de génération et l'ai coché dans Order and Export.

L'ordre et l'exportation sont apparemment ignorés et toutes les classes du fichier JAR externe sont manquantes au moment de l'exécution.

Existe-t-il une astuce pour inclure correctement les classes nécessaires d'un fichier JAR externe lors de la construction d'une application Android à l'aide du plug-in Eclipse? Je ne veux pas utiliser ant ou Maven.

323
Fredrik Olsson

Pour Eclipse

Un bon moyen d'ajouter des fichiers JAR externes à votre projet Android ou à tout projet Java consiste à:

  1. Créez un dossier nommé libs dans le dossier racine de votre projet.
  2. Copiez vos fichiers JAR dans le dossier libs
  3. Maintenant , cliquez avec le bouton droit sur le fichier Jar, puis sélectionnez Chemin de construction> Ajouter au chemin de construction , ce qui créera un dossier appelé "Bibliothèques référencées" dans votre projet.

    En faisant cela, vous ne perdrez pas vos bibliothèques référencées sur votre disque dur chaque fois que vous transférez votre projet sur un autre ordinateur.

Pour Android Studio

  1. Si vous êtes dans Android Voir dans l'explorateur de projet, changez-le en Voir projet comme ci-dessous

Missing Image

  1. Cliquez avec le bouton droit de la souris sur le module souhaité où vous souhaitez ajouter la bibliothèque externe, puis sélectionnez Nouveau> Directroy et nommez-le comme ' libs . '
  2. Copiez maintenant le fichier blah_blah.jar dans le dossier ' libs '.
  3. Cliquez avec le bouton droit sur blah_blah.jar, puis sélectionnez ' Ajouter en tant que bibliothèque .. '. Cela va automatiquement ajouter une entrée dans build.gradle en tant que compiler des fichiers ('libs/blah_blah.jar') et synchroniser le dégradé . Et vous avez terminé

Remarque: Si vous utilisez des bibliothèques tierces, il vaut mieux utiliser des dépendances transitives où le script Gradle télécharge automatiquement le fichier JAR et le fichier JAR de dépendance lors de l'exécution du script Gradle.

Ex: compilez 'com.google.Android.gms: play-services-ads: 9.4.0'

En savoir plus sur Gradle Dependency Management

440
Vinayak Bevinakatti

Oui, tu peux l'utiliser. Voici comment:

  1. Votre projet -> clic droit -> Importer -> Système de fichiers -> yourjar.jar
  2. Votre projet -> clic droit -> Propriétés -> Java chemin de construction -> bibliothèques -> Ajouter un pot -> votrejar.jar

Cette vidéo peut être utile si vous rencontrez des problèmes.

127
MannyNS

Je sais que le PO termine sa question en faisant référence au plug-in Eclipse, mais je suis arrivé ici avec une recherche qui ne spécifiait pas Eclipse. Donc, voici pour Android Studio:

  1. Ajouter le fichier jar au répertoire libs (tel que copier/coller)
  2. Cliquez avec le bouton droit sur le fichier jar et sélectionnez "Ajouter en tant que bibliothèque ...".
  3. cliquez sur "Ok" dans la boîte de dialogue suivante ou renommé si vous le souhaitez.

C'est ça!

5
shanabus

J'utilise actuellement le SDK 20.0.3 et aucune des solutions précédentes ne fonctionnait pour moi.

La raison pour laquelle hessdroid fonctionne là où hess a échoué est que les deux fichiers jar contiennent Java compilé pour différentes machines virtuelles. Le code d'octet créé par le compilateur Java ne peut pas être exécuté sur la machine virtuelle Dalvik. Le code d'octet créé par le compilateur Android ne peut pas être exécuté sur la machine virtuelle Java.

Dans mon cas, j'avais accès au code source et pouvais créer un fichier jar Android en utilisant la méthode que j'ai décrite ici: https://stackoverflow.com/a/13144382/545064

5

Il s'avère que je n'ai pas assez bien examiné ma trace de pile, le problème n'est pas que le fichier JAR externe n'est pas inclus.

Le problème est que la plate-forme Android ne contient pas javax.naming. * Et de nombreux autres packages pour lesquels le fichier JAR externe comporte également des dépendances.

L'ajout de fichiers JAR externes et la définition de l'ordre et de l'exportation dans Eclipse fonctionnent comme prévu avec les projets Android.

4
Fredrik Olsson

Aller au projet actuel

Clic droit-> Propriétés-> Chemin de construction Java-> Ajouter des fichiers JAR aux bibliothèques -> Cliquez sur OK

Il est ensuite ajouté au fichier de bibliothèques référencées dans votre projet actuel.

3
kalyan G

Si vous utilisez Android Studio, procédez comme suit (j'ai copié et modifié la réponse @Vinayak Bs):

  1. Sélectionnez la vue Projet dans la vue latérale du projet (au lieu de Packages ou Android)
  2. Créez un dossier appelé libs dans le dossier racine de votre projet.
  3. Copiez vos fichiers JAR dans le dossier libs
  4. La vue latérale sera mise à jour et les fichiers JAR apparaîtront dans votre projet.
  5. Maintenant, faites un clic droit sur chaque fichier JAR que vous souhaitez importer, puis sélectionnez "Ajouter en tant que bibliothèque ...", qui l'inclura dans votre projet.
  6. Après cela, tout ce que vous avez à faire est de référencer les nouvelles classes dans votre code, par exemple. import javax.mail.*
1
kumaheiyama

L'API Java d'Android ne prend pas en charge javax.naming. * Et de nombreux autres éléments javax. *. Vous devez inclure les dépendances en tant que jars séparés.

1
Rodrigo

dans Android studio si vous utilisez gradle

ajoutez ceci à build.gradle

compile fileTree(dir: 'libs', include: ['*.jar'])

et ajoutez le fichier jar au dossier libs

1
g_vk

Si vous utilisez le système de construction gradle, procédez comme suit:

  1. mettez les fichiers jar dans le dossier libs respectif de votre application Android. Vous le trouverez généralement dans Project> app> libs. Si le dossier libs est manquant, créez-en un.

  2. ajoutez ceci à votre fichier build.gradle votre fichier app. (Pas à votre build.gradle de Project)

    dependencies {
        compile fileTree(dir: 'libs', include: '*.jar')
        // other dependencies
    }
    

    Cela inclura tous vos fichiers jar disponibles dans le dossier libs.

Si vous ne voulez pas inclure tous les fichiers jar, vous pouvez les ajouter individuellement.

compile fileTree(dir: 'libs', include: 'file.jar')

1
Rohit Arya

Copier le fichier .jar dans le dossier du projet Android n'est pas toujours possible.
Surtout s'il s'agit d'une sortie d'un autre projet de votre espace de travail et qu'elle continue à être mise à jour.

Pour résoudre ce problème, vous devrez ajouter le fichier jar en tant que fichier lié à votre projet, au lieu de l'importer (ce qui le copiera localement).

Dans l'interface utilisateur, choisissez:

Projet -> Importer -> Système de fichiers -> yourjar.jar -> (Zone Options) Avancé -> Créer un lien dans l'espace de travail.

Le lien est enregistré dans le fichier .projet:

<linkedResources>
    <link>
        <name>yourjar.jar</name>
        <type>1</type>
        <locationURI>PARENT-5-PROJECT_LOC/bin/Android_ndk10d_armeabi-v7a/yourjar.jar</locationURI>
    </link>
</linkedResources>

PARENT-5-PROJECT_LOC signifie par rapport au fichier de projet, 5 répertoires vers le haut (../../../../../).

Puis ajoutez-le aux bibliothèques:
Projet -> Propriétés -> Java Chemin de construction -> Bibliothèques -> Ajouter un pot -> yourjar.jar

Dans la même fenêtre, sélectionnez l'onglet Commande et exportation et marquez votre pot afin qu'il soit ajouté à l'apk.

0
Yochai Timmer

créer un dossier (comme lib) dans votre projet, copier votre fichier JAR dans ce dossier. Maintenant, allez dans configurez le chemin de construction en cliquant avec le bouton droit de la souris sur le projet, il y a dans chemin de construction, sélectionnez

'add jar' naviguez jusqu'au dossier que vous avez créé et pick le jar.

0
sharma_kunal