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 cette bibliothèque n'est pas incluse dans la compilation.
J'ai créé un nouveau projet avec juste une MainActivity. J'ai copié gson-2.2.3.jar dans le dossier /libs et je l'ai ajouté en tant que dépendance de la bibliothèque (clic droit->Add as library). Cela inclut le jar dans android studio afin qu'il puisse être référencé à partir des fichiers sources.
Lorsque j'essaie d'exécuter 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 .gradle. Après cela, il compile correctement mais lorsque je lance l'application, j'obtiens une ClassDefNotFoundException
.
Quelqu'un sait-il ce que je fais mal ?
Je me suis battu avec la même chose pendant de nombreuses heures, en essayant de faire fonctionner le bocal Gson, rien de moins. J'ai finalement réussi à le faire - voici les étapes que j'ai suivies :
Mettre le jar Gson (dans mon cas, gson-2.2.4.jar
) dans le dossier libs
.
Faites un clic droit dessus et cliquez sur "Add as library".
Assurez-vous que compile files('libs/gson-2.2.4.jar')
est dans votre fichier build.gradle
(ou compile fileTree(dir : 'libs', include : '*.jar')
si vous utilisez beaucoup de fichiers jar).
Editer : Utilisez implementation files('libs/gson-2.2.4.jar')
(ou implementation fileTree(dir : 'libs', include : '*.jar')
) dans Android Studio 3.0+.
Faites un clean build (vous pouvez probablement faire cela dans Android Studio, mais pour être sûr, j'ai navigué dans un terminal jusqu'au dossier racine de mon application et j'ai 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 choses ci-dessus, ça a commencé à fonctionner correctement. Je pense que l'étape "Ajouter en tant que bibliothèque" était celle que j'avais manquée auparavant, et elle n'a pas fonctionné non plus jusqu'à ce que je la nettoie.
[Edition - ajout de l'étape build.gradle
qui est également nécessaire comme d'autres l'ont souligné].
IIRC, la simple utilisation de "Add as library" n'est pas suffisante pour qu'il compile avec le projet.
Consultez [l'aide d'Intellij][1] sur l'ajout de 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 Dependencies.
Dans l'onglet Dépendances, cliquez sur ajouter et sélectionnez Bibliothèque.
Dans la boîte de dialogue Choose Libraries, sélectionnez une ou plusieurs bibliothèques et cliquez sur Add Selected.
Si la bibliothèque ne s'affiche pas dans la boîte de dialogue, ajoutez-la dans les paramètres des bibliothèques, 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.
[1] : http://www.jetbrains.com/idea/webhelp/configuring-module-dependencies-and-libraries.html
Sur Mac OS X :
Ajoutez le bocal comme bibliothèque (faites glisser le bocal vers les bibliothèques, cliquez avec le bouton droit de la souris pour l'ajouter comme bibliothèque).
Ajoutez une déclaration de compilation à build.grade
.
Installer gradle v1.6
(utiliser homebrew)
Cela m'a arrangé.