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 les objets JSON. Mais la bibliothèque n'est en quelque sorte pas incluse dans la construction.
J'avais créé un nouveau projet avec juste une MainActivity . Copié gson-2.2.3.jar dans le dossier / libs et ajouté en tant que dépendance de bibliothèque (clic droit -> Ajouter en tant que bibliothèque). Cela inclut le pot dans Android Studio afin qu'il puisse être référencé à partir des fichiers source.
Lorsque j'essaie d'exécuter le projet, il ne peut pas être compilé, j'ai donc ajouté:
compile files('libs/gson-2.2.3.jar')
aux dépendances dans le fichier de .gradle. Après cela, il se 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?
Réponses:
Je lutte avec la même chose depuis de nombreuses heures, essayant de faire fonctionner le pot Gson pas moins. Je l'ai finalement craqué - voici les étapes que j'ai prises:
gson-2.2.4.jar
) dans lelibs
dossierAssurez-vous qu'il se
compile files('libs/gson-2.2.4.jar')
trouve dans votrebuild.gradle
fichier (oucompile fileTree(dir: 'libs', include: '*.jar')
si vous utilisez de nombreux fichiers jar)Modifier: utilisez
implementation files('libs/gson-2.2.4.jar')
(ouimplementation fileTree(dir: 'libs', include: '*.jar')
) dans Android Studio 3.0+Faites une construction propre (vous pouvez probablement le faire correctement dans Android Studio, mais pour vous assurer que j'ai navigué dans un terminal vers le dossier racine de mon application et que
gradlew clean
j'ai tapé . Je suis sur Mac OS X, la commande peut être différente sur votre systèmeAprès avoir fait les quatre ci-dessus, cela a bien fonctionné. Je pense que l'étape «Ajouter en tant que bibliothèque» était celle que j'avais précédemment manquée, et cela n'a pas fonctionné jusqu'à ce que je la nettoie non plus.
[Modifier - a ajouté l'
build.gradle
étape qui est également nécessaire comme d'autres l'ont souligné]la source
compile fileTree(dir: 'libs', include: '*.jar')
repositories { mavenCentral() }
et remplacez simplement votrecompile files(...)
ligne parcompile 'com.google.code.gson:gson:2.2.4'
et gradle téléchargera et gérera automatiquement le fichier jar pour vous. Cela permet à SCM de suivre uniquement les fichiers de code source et non les bibliothèquesbuild.gradle
: compile fileTree (dir: 'libs', include: ['* .jar'])Voici les instructions pour ajouter un fichier jar local en tant que bibliothèque à un module:
Créez un dossier 'libs' au niveau supérieur du répertoire du module (le même répertoire qui contient le répertoire 'src')
Dans l'
build.gradle file
ajout de ce qui suit pour que la fermeture de vos dépendances ait:Android Studio devrait déjà avoir configuré un wrapper gradlew. À partir de la ligne de commande, accédez au niveau supérieur de votre projet (le répertoire
gradlew
contenant un fichier).Courez
./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.Pour qu'Android Studio reconnaisse les fichiers jar locaux en tant que bibliothèques pour la prise en charge lors du codage dans l'EDI, vous devez prendre quelques mesures supplémentaires:
4.1. Faites un clic droit sur le module dans le panneau de gauche et choisissez
Open Library Settings
.4.2. Dans le panneau gauche de la boîte de dialogue, choisissez
Libraries
.4.3. Cliquez sur le
+
signe au-dessus du panneau deuxième à partir de la gauche ->Java
4.4. Sélectionnez votre pot local et ajoutez-le au projet.
Vous devrez peut-être exécuter la
./gradlew
commande ci-dessus une fois de plusla source
Dans le projet, faites un clic droit
Suivez les captures d'écran ci-dessous:
1:
2:
3:
Vous verrez ceci:
la source
Dans Android Stuido, j'aime utiliser Gradle pour gérer Gson lib.
Ajoutez la dépendance ci-dessous dans votre fichier build.gradle.
Tout va bien.
Vous pouvez également voir ce post. La meilleure façon d'intégrer une bibliothèque tierce dans Android Studio
la source
IIRC, il ne suffit pas d'utiliser "Ajouter comme bibliothèque" pour qu'il compile avec le projet.
Consultez l'aide d'Intellij sur l'ajout de bibliothèques à un projet
La partie qui devrait vous intéresser le plus est la suivante:
Si la bibliothèque n'apparaît pas dans la boîte de dialogue, ajoutez-la dans les paramètres des bibliothèques, juste en dessous des modules.
Vous ne devriez plus avoir besoin d'ajouter
compile files()
et la bibliothèque doit être correctement ajoutée à votre projet.la source
Toutes ces solutions sont dépassées. 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 gardez-le sur la première image et faites défiler ci-dessous et trouvez "Importer un fichier JAR ou .AAR"
Ensuite, prenez
Project Structure
dans le menu Fichier.Sélectionnezapp
dans la fenêtre ouverte, puis sélectionnezdependencies
, puis appuyez surgreen plus button
, sélectionnezmodule dependency
puis sélectionnez le module que vous avez importé, puis appuyez surOK
la source
la source
'compiler des fichiers ...' fonctionnait pour moi, mais plus maintenant. après beaucoup de douleur, j'ai constaté que l'utilisation de cela fonctionne à la place:
compile fileTree(dir: 'libs', include: '*.jar')
Je ne sais pas pourquoi cela a fait une différence, mais, au moins, ce fichu truc fonctionne maintenant.
la source
Cela a résolu mon problème. Essayez, si quelqu'un veut plus de détails, faites le moi savoir.
la source
Je l'ai fait fonctionner en ajoutant simplement une ligne à
build.gradle
:N'oubliez pas de cliquer
Sync now
dans le coin supérieur droit.J'utilise Android Studio 1.0.1.
la source
fileTree
ligne?J'ai trouvé Dependency Manager d'Android Studio assez pratique et puissant pour gérer les dépendances tierces (comme gson mentionné ici). Fournir un guide étape par étape qui a fonctionné pour moi (REMARQUE: ces étapes sont testées pour Android Studio 1.6 et les versions ultérieures sur la plate-forme Windows).
Étape 1: Aller à "Construire> Modifier les bibliothèques et les dépendances ..." cela ouvrirait la boîte de dialogue "Structure du projet"
Étape-2: Sélectionnez "application" puis sélectionnez l'onglet "Dépendances". Sélectionnez ensuite "Ajouter> 1 dépendance de bibliothèque"
Étape 3: la boîte de dialogue "Choisir la dépendance de la bibliothèque" s'affiche, spécifiez "gson" dans la recherche et appuyez sur le "bouton de recherche"
Étape 4: La dépendance souhaitée serait affichée dans la liste de recherche, sélectionnez com.google.code.gson: gson: 2.7 (c'est la dernière version au moment où j'ai écrit la réponse), appuyez sur OK
Appuyez sur OK dans la boîte de dialogue "Structure du projet". Gradle mettrait à jour vos scripts de construction en conséquence.
J'espère que cela aiderait :)
la source
Android Studio 2.3.3
Après avoir fait les trois ci-dessus, cela a bien fonctionné.
la source
Téléchargez et copiez votre
.jar
fichier dans lelibs
dossier, puis ajoutez ces lignes à build.gradle:N'oubliez pas de cliquer sur "Synchroniser maintenant"
la source
Vous pouvez le faire avec deux options.
première manière 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 zone de liste déroulante au-dessus des dossiers.
puis faites un clic droit sur le fichier .jar et cliquez sur ajouter comme bibliothèque puis choisissez un module puis ok. Vous pouvez voir le fichier .jar dans le fichier build.gradle dans le bloc des dépendances.
La deuxième façon 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 que nous voulons.
module d'importation ---> choisissez votre fichier .jar -> puis importez en tant que .jar -
Ensuite, CTRL + ALT + MAJ + S -> stabilité du projet -> choisissez le module que vous souhaitez pour ajouter un bocal -> Dépendances -> Dépendance du module. build.gradle du module sera mis à jour automatiquement.
la source
J'ai fait plus de 3 étapes et son charme de travail pour moi.
(J'utilise Android Studio 2.1.2)
Étape 1
compile 'com.squareup.okhttp3:okhttp:3.3.1'
) dans le script de construction gradle sous build.gradle (Module: app) .Étape 2: Faites un clic droit sur le dossier de l' application -> Nouveau -> Module
Étape 3: cliquez sur Importer le package JAR / .AAR, puis parcourez votre package. à titre d'exemple: OkHttp.jar
la source
Avec Android Studio 3+:
Vous devriez simplement pouvoir simplement copier le fichier jar dans le dossier libs juste sous le dossier de l'application.
... monprojet \ app \ libs \ monfichier.jar
Sélectionnez ensuite les fichiers de projet dans la liste déroulante de la fenêtre Projets, cliquez avec le bouton droit sur le projet, sélectionnez Synchroniser pour voir le fichier dans les fichiers de projet. Il ajoutera automatiquement les dépendances dans le fichier gradle (Module: app).
Voici une autre solution:
Accédez à la vue Fichiers de projet (sélectionnez Fichiers de projet dans la liste déroulante).
Sélectionnez Nouveau ... Répertoire, créez un dossier nommé libs juste sous l'application.
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 et sélectionnez Ajouter en tant que bibliothèque ... dans le menu contextuel.
Vous devriez voir le fichier répertorié dans la liste des dépendances du fichier gradle:
Ouvrez votre fichier java et ajoutez-y l'instruction d'importation:
la source
Mettez les
.jar
fichiers danslibs
dossier du projet Android.Ajoutez ensuite cette ligne de code dans le fichier gradle de l'application:
Pour le plugin Android Gradle 3.0 et versions ultérieures, il est préférable de l'utiliser à la place:
la source
Contrairement à Eclipse, nous n'avons pas besoin de télécharger le fichier jar et de le placer dans le dossier / libs. Gradle gère ces choses dont nous avons seulement besoin pour ajouter des dépendances Gradle, Gradle le télécharge et 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 et l'ajouter en tant que bibliothèque, mais la meilleure pratique consiste à ajouter des dépendances Gradle.
la source
la source
Étape 1: Maintenant sous votre
app folder
vous devriez voirlibs
, si vous ne le voyez pas, alors créez-le .Étape 2:
Drag & Drop the .jar file here
vous obtiendrez peut-être une invite"This file does not belong to the project"
, cliquez simplement sur leOK
bouton.Étape 3: Maintenant, vous devriez voir le 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, ce pot a été ajouté.
la source
Créez un dossier de bibliothèques. Ajoutez votre fichier .jar. Faites un clic droit dessus et vous trouverez ajouter un pot 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.
la source
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 des 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'
puis vous pouvez voir sur votre build.gradle comme ceci: compiler des fichiers ('src / your_libs / your.jar')
la source
Dans Android Studio 1.1.0. J'ai résolu cette question en suivant les étapes:
1: Mettez le fichier jar dans le répertoire libs. (dans le Finder)
2: Ouvrez les paramètres du module, allez dans Dépendances, dans le coin inférieur gauche il y a un bouton plus. Cliquez sur le bouton plus puis choisissez "Dépendance des fichiers". Ici vous pouvez voir votre fichier jar. Sélectionnez-le et c'est résolu.
la source
J'ai lu toutes les réponses ici et elles semblent toutes couvrir les anciennes versions d'Android Studio!
Avec un projet créé avec Android Studio 2.2.3, j'avais juste besoin de créer un
libs
répertoire sousapp
et d'y placer mon pot. Je l'ai fait avec mon gestionnaire de fichiers, pas 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:
la source
Sous Mac OS X:
Ajouter un pot en tant que bibliothèque (faites glisser le pot vers les bibliothèques, cliquez avec le bouton droit sur ajouter en tant que bibliothèque)
Ajouter une instruction de compilation à
build.grade
Installer
gradle v1.6
(utiliser homebrew)Gradle Clean (reconstruire Android n'a pas fonctionné)
Cela m'a fait comprendre.
la source
Comme beaucoup l'ont souligné, vous ajouterez
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", donc pour moi, la suppression du "s" a résolu le problème.
la source
libs
dossier au niveau deapp
.jars
dans ce projet.libs
dossier,add library
J'ai observé CTRL+ ALT+ SHIFT+ S-> structure de projet -> app-module -> Dépendances » avait déjà une entrée comme
(dir: 'libs', include: '*.jar')
souscompile-option
, au début et après avoir ajouté le pot est selon les étapes indiquées ci - dessus, le. Abuild.gradle
obtenu les entrées pour le nouveau ajouté pot, lui-même.la source
Dans Android Studio 2.1, je suis le suivant,
Aller à l'application -> src-> principal -> dossier d' actifs (si non disponible, créez-le) -> mettez vos fichiers JAR
Dans votre build.gradle, ajoutez une dépendance comme celle-ci,
Synchroniser maintenant. Maintenant, vos fichiers JAR prêts à l'emploi.
la source
Pour les nouveaux Android 1.0.2, les éléments suivants sont déjà présents dans votre fichier build.gradle
Ajoutez le pot de bibliothèque à votre dossier libs -> faites un clic droit sur la bibliothèque -> cliquez sur ajouter en tant que bibliothèque -> il vous demande le projet pour lequel l'ajouter -> sélectionnez votre projet -> cliquez sur ok La ligne suivante est automatiquement ajoutée pour construire .gradle
Ça l'a fait pour moi. rien de plus n'était requis. J'ai montré cela pour Android Aquery une autre bibliothèque tierce pour Android.
la source
Ma réponse consiste essentiellement à rassembler certaines des réponses correctes mais incomplètes fournies ci-dessus.
Ajoutez ce qui suit:
Cela permettra la prise en charge de deux façons différentes d'ajouter des dépendances. Le
compile fileTree(dir: 'libs', include: ['*.jar'])
(comme @Binod l'a mentionné) dit au compilateur de regarder sous le dossier libs pour N'IMPORTE QUEL pot. C'est une bonne pratique 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 une autre façon recommandée d'ajouter des dépendances qui sont dans un référentiel distant central et non dans notre / local "référentiel local". Il s'agit essentiellement de dire à gradle de rechercher cette version de ce package et de demander au compilateur de la prendre en compte lors de la compilation du projet (en l'ayant dans le chemin de classe)PS: j'utilise les deux
la source