web-dev-qa-db-fra.com

Android Studio: Ajouter un fichier jar en tant que bibliothèque?

J'essaie d'utiliser le nouveau Android Studio mais je n'arrive pas à le faire fonctionner correctement.

J'utilise la bibliothèque Gson pour sérialiser/désérialiser des objets JSON. Mais la bibliothèque n’est pas incluse dans la construction.

J'avais créé un nouveau projet avec juste un MainActivity. Copié gson-2.2.3.jar dans le dossier/libs et l'ajouté comme dépendance de la bibliothèque (clic droit-> Ajouter en tant que bibliothèque). Cela inclut le fichier jar dans Android studio afin qu’il puisse être référencé à partir des fichiers source.

Quand j'essaye de lancer le projet, il ne peut pas compiler, alors j'ai ajouté:

compile files('libs/gson-2.2.3.jar')

aux dépendances dans le fichier de .gradle. Après cela, il compile correctement mais lors de l'exécution de l'application, j'obtiens un ClassDefNotFoundException.

Est-ce que quelqu'un sait ce que je fais mal?

994
Ozzie

Cela fait de nombreuses heures que je me bats avec le même problème, en essayant de faire fonctionner le pot Gson. J'ai finalement craqué - voici les étapes que j'ai prises:

  1. Mettez le pot Gson (dans mon cas, gson-2.2.4.jar) dans le dossier libs
  2. Faites un clic droit dessus et cliquez sur 'Ajouter en tant que bibliothèque'
  3. Assurez-vous que compile files('libs/gson-2.2.4.jar') se trouve dans votre fichier build.gradle (ou compile fileTree(dir: 'libs', include: '*.jar') si vous utilisez plusieurs fichiers jar).

    Édition: Utilisez implementation files('libs/gson-2.2.4.jar') (ou implementation fileTree(dir: 'libs', include: '*.jar')) dans Android Studio 3.0+.

  4. Effectuez une construction propre (vous pouvez probablement le faire très bien dans Android Studio, mais pour vous assurer que j'ai navigué dans un terminal vers le dossier racine de mon application et tapé gradlew clean. Je suis sur Mac OS X, la commande peut être différente sur votre système

Après avoir fait les quatre ci-dessus, cela a commencé à bien fonctionner. Je pense que l'étape 'Ajouter en tant que bibliothèque' était celle que j'avais précédemment manquée et qu'elle ne fonctionnait pas tant que je ne l'avais pas nettoyée.

[Éditer - a ajouté l'étape build.gradle qui est également nécessaire, comme d'autres l'ont fait remarquer]

1507
lepoetemaudit

Voici les instructions pour ajouter un fichier JAR local en tant que bibliothèque à un module:

  1. Créez un dossier 'libs' au niveau supérieur du répertoire du module (le même répertoire que le répertoire 'src')

  2. Dans le build.gradle file ajoutez ce qui suit pour que la fermeture de vos dépendances ait:

    dependencies {
        // ... other dependencies
        compile files('libs/<your jar's name here>')
    }
    
  3. Android Studio devrait déjà avoir configuré un wrapper Gradlew. A partir de la ligne de commande, accédez au niveau supérieur de votre projet (le répertoire qui contient un fichier gradlew).

    Exécutez ./gradlew assemble. Cela devrait compiler le projet avec la bibliothèque. Vous devrez peut-être corriger les erreurs dans votre fichier build.gradle si nécessaire.

  4. Pour que Android Studio reconnaisse les fichiers JAR locaux en tant que bibliothèques de support lors du codage dans l'EDI, vous devez suivre quelques étapes supplémentaires:

    4.1. Faites un clic droit sur le module dans le panneau de gauche et choisissez Open Library Settings.

    4.2. Sur le panneau de gauche de la boîte de dialogue, choisissez Libraries.

    4.3. Cliquez sur le signe + au-dessus du panneau en partant de la gauche -> Java

    Menu

    4.4. Sélectionnez votre pot local et ajoutez-le au projet.

  5. Vous devrez peut-être exécuter la commande ./gradlew ci-dessus une fois de plus

264
ZenBalance

Dans le projet clic droit

-> new -> module
-> import jar/AAR package
-> import select the jar file to import
-> click ok -> done

Suivez les captures d'écran ci-dessous:

1:

Step 1

2:

enter image description here

3:

enter image description here

Vous verrez ceci:

enter image description here

109
Ganesh Pandey

IIRC, utiliser simplement "Ajouter en tant que bibliothèque" ne suffit pas pour qu'il soit compilé avec le projet.

Vérifiez aide d'Intellij pour ajouter des bibliothèques à un projet

La partie qui devrait vous intéresser le plus est la suivante:

(Dans File > Project Structure) Ouvrez les paramètres du module et sélectionnez l'onglet Dépendances.

Sous l'onglet Dépendances, cliquez sur ajouter et sélectionnez Bibliothèque.

Dans la boîte de dialogue Choisir les bibliothèques, sélectionnez une ou plusieurs bibliothèques, puis cliquez sur Ajouter la sélection.

Si la bibliothèque ne s'affiche pas dans la boîte de dialogue, ajoutez-la dans les paramètres de la bibliothèque, juste en dessous de Modules.

Vous ne devriez plus avoir besoin d'ajouter compile files(), et la bibliothèque devrait être correctement ajoutée à votre projet.

47
Jukurrpa

Dans Android Stuido, j'aime bien utiliser Gradle pour gérer Gson lib.

Ajoutez la dépendance ci-dessous dans votre fichier build.gradle.

repositories {mavenCentral()}

dependencies {compile 'com.google.code.gson:gson:2.2.4'}

Tout va bien.

Vous pouvez également voir ce post. Le meilleur moyen d'intégrer une bibliothèque tierce dans Android studio

46
saneryee

Toutes ces solutions sont obsolètes. C'est vraiment facile maintenant dans Android Studio:

Fichier> Nouveau module ...

L’écran suivant a l’air bizarre, comme si vous sélectionniez un widget ou quelque chose mais que vous le gardiez sur la première image et au-dessous, faites défiler et trouvez "Importer un fichier JAR ou .AAR".

Ensuite, prenez Project Structure dans le menu Fichier. Sélectionnez app dans la fenêtre ouverte, puis sélectionnez dependencies, puis appuyez sur green plus button, sélectionnez module dependency, puis sélectionnez le module que vous avez importé, puis appuyez sur OK

40
Helzgate

Étapes faciles pour ajouter une bibliothèque externe dans Android Studio

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

enter image description here

  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 est préférable d'utiliser des dépendances 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

35
Vinayak Bevinakatti

"Compiler des fichiers ..." travaillait pour moi, mais plus maintenant. après beaucoup de douleur, j'ai constaté que cette méthode fonctionnait bien:

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

Je ne sais pas du tout pourquoi cela a fait une différence, mais au moins la fichue chose fonctionne maintenant.

33
user2084396

Je l'ai fait fonctionner en ajoutant simplement une ligne à build.gradle:

 dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar']) ----> AS creates this
    implementation 'com.google.code.gson:gson:2.3.1'   ----------> I added this one
    }

N'oubliez pas de cliquer sur "Synchroniser maintenant" dans le coin supérieur droit.

J'utilise Android Studio 1.0.1.

17
Fergara
  1. Télécharger le fichier de la bibliothèque à partir du site Web
  2. Copier de Windows Explorer
  3. Coller dans le dossier lib à partir de l'Explorateur de projet
  4. Ctrl+Alt+Shift+S Structure de projet ouverte
  5. Sélectionnez l'onglet Dépendances, ajoutez le fichier à l'aide de +
  6. Barre d'outils Synchroniser un projet avec un fichier de niveaux à l'aide du bouton

Cela a résolu mon problème. Essayez, si quelqu'un veut plus de détails faites le moi savoir.

17
sansalk

J'ai trouvé le gestionnaire de dépendances de Android Studio assez pratique et puissant pour gérer les dépendances de tiers (comme le gson mentionné ici). Guide pas à pas qui a fonctionné pour moi (REMARQUE: Ces étapes sont testées pour Android Studio 1.6 et versions ultérieures sur la plate-forme Windows).

Étape 1: Allez à "Construire> Modifier les bibliothèques et dépendances ...", la boîte de dialogue "Structure du projet" s'ouvrira.

enter image description here

Étape 2: Sélectionnez "app", puis sélectionnez l'onglet "Dépendances". Puis sélectionnez "Ajouter> 1 dépendance à la bibliothèque"

enter image description here

Étape 3: La boîte de dialogue "Choisir la dépendance de la bibliothèque" apparaîtra, spécifiez "gson" dans la recherche et appuyez sur le "bouton de recherche".

enter image description here

Étape 4: La dépendance souhaitée serait affichée dans la liste de recherche, sélectionnez com.google.code.gson: gson: 2.7 (il s'agit de la dernière version au moment où j'ai écrit la réponse), appuyez sur OK

enter image description here

Appuyez sur OK dans la boîte de dialogue "Structure du projet". Gradle mettrait à jour vos scripts de construction en conséquence.

enter image description here

J'espère que cela aiderait:)

13
A.B.

1. Mettez le pot (dans mon cas, gson-2.2.4.jar) dans le dossier libs.

2. Assurez-vous que les fichiers de compilation (libs/gson-2.2.4.jar) figurent dans votre fichier build.gradle.

. Maintenant, cliquez sur "Synchroniser le projet avec les fichiers Gradle" (bouton de gauche du gestionnaire AVD dans la barre supérieure).

Après que j'ai fait les trois ci-dessus, cela a commencé à bien fonctionner.

11
Sandeep

Vous pouvez le faire avec deux options.

premier moyen simple.

Copiez le fichier .jar dans le presse-papiers, puis ajoutez-le au dossier libs. Pour voir le dossier libs dans le projet, choisissez le projet dans la liste déroulante au-dessus des dossiers.

cliquez ensuite avec le bouton droit sur le fichier .jar, cliquez sur Ajouter en tant que bibliothèque, puis choisissez un module, puis cliquez sur OK. Vous pouvez voir le fichier .jar dans le fichier build.gradle dans le bloc des dépendances.

 dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
        implementation 'com.Android.support:appcompat-v7:21.0.3'
        implementation project(':okhttp-2.0.0')
        implementation 'com.google.code.gson:gson:2.3.1'
    }

La deuxième méthode est la suivante: nous pouvons ajouter un fichier .jar à un module en important ce fichier .jar en tant que module .jar, puis ajouter ce module à n’importe quel module de notre choix.

module d'importation ---> choisissez votre fichier .jar -> qu'importer en tant que .jar - enter image description here

Puis CTRL + ALT + MAJ + S -> Projet sturure -> choisissez le module que vous souhaitez ajouter à un fichier jar -> Dépendances -> Dépendance du module. build.gradle du module sera mis à jour automatiquement. enter image description here

9
huseyin

Téléchargez et copiez votre fichier .jar dans le dossier libs puis ajoutez ces lignes à build.gradle:

dependencies {
    implementation fileTree(dir: 'libs', include: ['*.jar'])
    implementation 'com.google.code.gson:gson:2.3.1'
}

N'oubliez pas de cliquer sur "Synchroniser maintenant"

9
NarenderNishad

Placez les fichiers .jar dans le dossier libs du projet Android.

Ajoutez ensuite cette ligne de code dans le fichier de classement de l'application:

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

Pour Android gradle plugin 3.0 et versions ultérieures, il vaut mieux utiliser ceci à la place:

    implementation fileTree(dir: 'libs', include: ['*.jar'])
7
Aby Mathew

Contrairement à Eclipse, nous n'avons pas besoin de télécharger jar et de le placer dans le dossier/libs. Gradle gère tout ce dont nous avons besoin d’ajouter des dépendances Gradle, Gradle le télécharge et le met en cache Gradle.

Nous devons ajouter des dépendances comme:

dépendances {implémentation 'com.google.code.gson: gson: 2.2.4'}

thats it Cependant, nous pouvons également télécharger jar & add en tant que bibliothèque, mais la meilleure pratique consiste à ajouter des dépendances Gradle.

7
Pankaj kumar

J'ai fait ci-dessus 3 étapes et son travail charme pour moi.

(J'utilise Android Studio 2.1.2)

enter image description here

Étape 1

  • Ajoutez votre nom du package jar (à titre d'exemple compile 'com.squareup.okhttp3:okhttp:3.3.1') dans le script de génération de dégradé sous build.gradle. (Module: app) .

enter image description here

Étape 2: Cliquez avec le bouton droit de la souris sur le dossier de l'application -> Nouveau -> Module

enter image description here

Étape 3: Cliquez sur Importer le package JAR/.AAR Ensuite, parcourez votre package. . à titre d'exemple: OkHttp.jar

enter image description here

7
Elshan

Avec Android Studio 3+:

Vous devriez simplement pouvoir simplement copier le fichier jar dans le dossier libs juste sous le dossier app.

... monprojet\app\libs\monfichier.jar

Puis sélectionnez Fichiers de projet dans la liste déroulante de la fenêtre Projets, cliquez avec le bouton droit de la souris sur le projet, sélectionnez Synchroniser pour afficher le fichier dans Fichiers de projet. Il ajoutera automatiquement les dépendances dans le fichier gradle (Module: app).

dependencies {
...
    implementation files('libs/myfile.jar')

Voici une autre solution:

Accédez à la vue Fichiers de projet (sélectionnez Fichiers de projet dans la liste déroulante).

enter image description here

Sélectionnez New ... Directory, créez un dossier nommé libs juste sous app.

enter image description here

Ouvrez l'explorateur de fichiers, copiez et collez votre fichier jar dans le dossier libs.

Dans Android Studio, cliquez avec le bouton droit sur le fichier jar, puis sélectionnez Ajouter en tant que bibliothèque ... dans le menu contextuel.

enter image description here

Vous devriez voir le fichier listé dans la liste des dépendances dans le fichier gradle:

dependencies {
...
    implementation files('libs/myfile.jar')
}

Ouvrez votre fichier Java et ajoutez-y l'instruction d'importation:

import com.xxx.xxx;
6
live-love
menu File -> project struct -> module select "app" -> dependencies tab -> + button 
-> File dependency -> PATH/myfile.jar
5
vuhung3990

1) Créez un dossier "your_libs" dans le dossier Project/app/src.

2) Copiez votre fichier jar dans ce dossier 'your_libs'

3) Dans Android Studio, allez dans Fichier -> Structure du projet -> Dépendances -> Ajouter -> Dépendance de fichiers et accédez à votre fichier jar, qui devrait se trouver sous 'src/your_libs'.

3) Sélectionnez votre fichier JAR et cliquez sur 'Ok'

et ensuite vous pouvez voir sur votre build.gradle comme ceci: compiler des fichiers ('src/your_libs/your.jar')

4
idris yıldız

Créez un dossier libs. Ajoutez votre fichier .jar. Faites un clic droit dessus et vous trouverez ajouter jar comme dépendance. Clique dessus. C'est tout ce que vous devez faire. Vous pouvez trouver les dépendances ajoutées à votre fichier build.gradle.

4

J'ai lu toutes les réponses ici et elles semblent toutes couvrir les anciennes versions de Android Studio!

Avec un projet créé avec Android Studio 2.2.3, je devais créer un répertoire libs sous app et y placer mon pot. Je l’ai fait avec mon gestionnaire de fichiers, nul besoin de cliquer ou de modifier quoi que ce soit dans Android Studio.

Pourquoi ça marche? Ouvrez Build/Edit Libraries and Dependencies et vous verrez:

{include=[*.jar], dir=libs}
4
0xF

Étape 1: Maintenant, sous votre app folder, vous devriez voir libs, si vous ne le voyez pas, puis créez-le .

Étape 2: Drag & Drop the .jar file here, vous pouvez recevoir une invite "This file does not belong to the project", il suffit de cliquer sur OK Bouton.

Étape 3: Vous devriez maintenant voir fichier jar sous le dossier libs, faites un clic droit sur le fichier jar et sélectionnez "Add as library", Click OK for Prompt "Create Library"

Étape 4: Maintenant ceci jar a été ajouté.

enter image description here

4
IntelliJ Amiya

Dans Android Studio 1.1.0. J'ai résolu cette question en procédant comme suit:

1: Placez le fichier jar dans le répertoire libs. (dans le Finder)

2: Ouvrez les paramètres du module, allez à Dépendances, dans le coin inférieur gauche se trouve un bouton Plus. Cliquez sur le bouton plus puis choisissez "Dépendance de fichier" .Voici, vous pouvez voir votre fichier jar. Sélectionnez-le et c'est résolu.

4
mbo
  1. Ajout du dossier libs au niveau de app.
  2. Ajout de tous les jars dans ce projet.
  3. Ensuite, sélectionnez tous les pots, dans le dossier libs,
  4. faites un clic droit sur les éléments sélectionnés et dites add library
  5. vous trouverez ensuite l'option d'extension des bocaux, dans l'explorateur de projet lui-même.

J'ai observé CTRL + ALT + SHIFT + S -> structure du projet -> app-module -> Dependencies "avait déjà une entrée comme (dir: 'libs', include: '*.jar') sous compile-option, au départ. Et après avoir ajouté les fichiers jar comme indiqué ci-dessus, le build.gradle a obtenu les entrées pour le nouveau fichier ajouté, lui-même.

3
parasrish

Pour les nouveaux Android 1.0.2, les éléments suivants sont déjà présents dans votre fichier build.gradle

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

Ajoutez le fichier jar de la bibliothèque à votre dossier libs -> cliquez avec le bouton droit de la souris sur la bibliothèque -> cliquez sur ajouter en tant que bibliothèque -> il vous est demandé de l'ajouter au projet -> sélectionnez votre projet-> cliquez sur ok La ligne suivante est automatiquement ajoutée pour construire .gradle

implementation files('libs/Android-query.jar')

Cela l'a fait pour moi. rien de plus n'était requis. Je l'ai montré pour Android une autre bibliothèque tierce pour Android.

3
user2779311

Comme beaucoup l'ont déjà fait remarquer, vous ajouterez

compile files('libs/gson-2.2.3.jar') 

dans votre fichier build.gradle.

Cependant, j'ai un projet dans Android Studio qui a été migré depuis Eclipse et dans ce cas, le dossier "libs" est nommé "lib". Pour moi, supprimer le "s" a résolu le problème.

3
Christina

Dans Android Studio 2.1 Je suis la suivante,

Aller à l'application -> src-> main -> assets dossier (si non disponible le créer) -> mettre vos fichiers JAR

enter image description here

Dans votre build.gradle, ajoutez une dépendance comme celle-ci,

implementation files('src/main/assets/jsoup.jar')
implementation files('src/main/assets/org-Apache-xmlrpc.jar')
implementation files('src/main/assets/org.Apache.commons.httpclient.jar')
implementation files('src/main/assets/ws-commons-util-1.0.2.jar')

Synchroniser maintenant. Maintenant, vos fichiers JAR prêts à être utilisés.

3
Ranjith Kumar

Sur Mac OS X:

  1. Ajouter un fichier jar en tant que bibliothèque (faites glisser le fichier jar vers les bibliothèques, cliquez avec le bouton droit de la souris sur Ajouter en tant que lib)

  2. Ajouter une instruction de compilation à build.grade

  3. Installez gradle v1.6 (utilisez homebrew)

    • brasser installer gradle
    • gradle -v
    • sinon v1.6, mettez à niveau homebrew
  4. gradle clean (la reconstruction Android n'a pas fonctionné)

Cela m'a arrangé.

3
user2573236

Ma réponse consiste essentiellement à rassembler certaines des réponses correctes mais incomplètes fournies ci-dessus.

  1. Ouvrez build.gradle
  2. Ajouter ce qui suit:

    dependencies {
    compile 'com.Android.support:appcompat-v7:19.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.google.code.gson:gson:2.3'
    }
    

    Cela permettra de prendre en charge deux manières différentes d’ajouter des dépendances. La compile fileTree(dir: 'libs', include: ['*.jar']) (comme @Binod l'a mentionné) indique au compilateur de regarder sous le dossier libs de N'IMPORTE QUEL jar. Il est recommandé de créer un tel dossier 'libs' qui contiendra les packages jar que notre application doit utiliser.

Mais cela permettra également de prendre en charge la dépendance Maven. La compilation 'com.google.code.gson:gson:2.3' (comme mentionné par @saneryee) est un autre moyen recommandé d’ajouter des dépendances qui se trouvent dans un référentiel distant central et non dans notre "référentiel local" de/libs. C'est dire à gradle de rechercher cette version de ce paquet et au compilateur de le prendre en compte lors de la compilation du projet (l'avoir dans le chemin de classe).

PS: j'utilise les deux

2
iberodev

compile fileTree(dir: 'libs', include: '*.jar') fonctionne bien mais pas compile files(...) ont été testés avec Studio Beta 0.8.1

1
Binod Singh

Je ne sais pas pourquoi, mais mon Android Studio 0.8.14 devient fou quand j'essaie d'implémenter ces solutions à l'aide de Gradle. J'admets ma faible connaissance de cet excellent outil de compilation, mais en quoi Studio mutile-t-il mon projet? Je parviens à le faire fonctionner de cette façon: mettez Android-support-v13.jar dans le répertoire 'libs', puis F4 sur mon projet et ajoutez une dépendance de fichier où j'ai pointé Android-support-v13.jar.

0
olyv

Dans mon cas, la bibliothèque ajoutée a manqué certaines dépendances, mais malheureusement Android Studio (0.8.14) a gardé cela secret.

Il n'y avait pas besoin de configurer manuellement quoi que ce soit! Je viens d'ajouter les bibliothèques manquantes et d'utiliser la configuration de dépendance par défaut dans le fichier app build.gradle, comme ceci

dependencies {
    compile 'com.google.code.gson:gson:2.+'
    compile fileTree(dir: 'libs', include: ['*.jar'])
}
0
Dirk

FAIRE ceci:

Créez le dossier libs sous le dossier de l'application. Ajoutez des fichiers .jar au dossier libs. Ajoutez ensuite les fichiers .jar à la dépendance build.gradle de l'application. Enfin, synchroniser le projet avec les fichiers Gradle.

0
user3686646