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?
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:
gson-2.2.4.jar
) dans le dossier libs
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+.
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]
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 que le répertoire 'src')
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>')
}
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.
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
4.4. Sélectionnez votre pot local et ajoutez-le au projet.
Vous devrez peut-être exécuter la commande ./gradlew
ci-dessus une fois de plus
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.
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
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
Étapes faciles pour ajouter une bibliothèque externe dans Android Studio
- Si vous êtes dans Android Voir dans l'explorateur de projet, changez-le en Voir projet comme ci-dessous
- 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 . '
- Copiez maintenant le fichier blah_blah.jar dans le dossier ' libs '.
- 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
"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.
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.
Cela a résolu mon problème. Essayez, si quelqu'un veut plus de détails faites le moi savoir.
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.
Étape 2: Sélectionnez "app", puis sélectionnez l'onglet "Dépendances". Puis sélectionnez "Ajouter> 1 dépendance à la bibliothèque"
É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".
É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
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:)
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.
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 -
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.
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"
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'])
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.
J'ai fait ci-dessus 3 étapes et son travail charme pour moi.
(J'utilise Android Studio 2.1.2)
Étape 1
compile 'com.squareup.okhttp3:okhttp:3.3.1'
) dans le script de génération de dégradé sous build.gradle. (Module: app) .Étape 2: Cliquez avec le bouton droit de la souris sur le dossier de l'application -> Nouveau -> Module
Étape 3: Cliquez sur Importer le package JAR/.AAR Ensuite, parcourez votre package. . à titre d'exemple: OkHttp.jar
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).
Sélectionnez New ... Directory, créez un dossier nommé libs juste sous app.
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.
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;
menu File -> project struct -> module select "app" -> dependencies tab -> + button
-> File dependency -> PATH/myfile.jar
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')
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.
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}
É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é.
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.
libs
au niveau de app
.jars
dans ce projet.libs
,add library
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.
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.
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.
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
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.
Sur Mac OS X:
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)
Ajouter une instruction de compilation à build.grade
Installez gradle v1.6
(utilisez homebrew)
gradle clean (la reconstruction Android n'a pas fonctionné)
Cela m'a arrangé.
Ma réponse consiste essentiellement à rassembler certaines des réponses correctes mais incomplètes fournies ci-dessus.
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
compile fileTree(dir: 'libs', include: '*.jar')
fonctionne bien mais pas compile files(...)
ont été testés avec Studio Beta 0.8.1
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.
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'])
}
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.