web-dev-qa-db-fra.com

Gson NoClassDefFoundError après la mise à jour des outils ADT et SDK vers la v17

Aujourd'hui, j'ai mis à jour mes outils ADT et SDK vers la v17 et mes projets utilisant La bibliothèque de jar gson de Google a commencé à lancer NoClassDefFoundError . Voici la sortie logcat:

> 03-22 12:30:58.941: E/AndroidRuntime(21672): FATAL EXCEPTION: main
> 03-22 12:30:58.941: E/AndroidRuntime(21672):
> Java.lang.NoClassDefFoundError: com.google.gson.Gson 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.conn.XRequestHandler.connect(XRequestHandler.Java:35)
> 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.conn.XRequestHandler.makeRequest(XRequestHandler.Java:
> 29) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.bavul.XBaseWithConnectionActivity.makeRequest(XBaseWithConnectionActivity.Java:
> 46) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> com.matriksdata.ui.login.SplashScreenActivity.onCreate(SplashScreenActivity.Java:
> 36) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.Activity.performCreate(Activity.Java:4465) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.Instrumentation.callActivityOnCreate(Instrumentation.Java:
> 1049) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:
> 1919) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:
> 1980) 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.ActivityThread.access$600(ActivityThread.Java:122) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1146)
> 03-22 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.os.Handler.dispatchMessage(Handler.Java:99) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Android.os.Looper.loop(Looper.Java:137) 03-22 12:30:58.941:
> E/AndroidRuntime(21672):    at
> Android.app.ActivityThread.main(ActivityThread.Java:4340) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Java.lang.reflect.Method.invokeNative(Native Method) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> Java.lang.reflect.Method.invoke(Method.Java:511) 03-22 12:30:58.941:
> E/AndroidRuntime(21672):    at com.Android.internal.os.ZygoteInit
> $MethodAndArgsCaller.run(ZygoteInit.Java:784) 03-22 12:30:58.941:
> E/AndroidRuntime(21672):    at
> com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:551) 03-22
> 12:30:58.941: E/AndroidRuntime(21672):    at
> dalvik.system.NativeStart.main(Native Method)

des idées?

43
Yasin YILDIRIM

J'ai rencontré un problème similaire aujourd'hui.

Cela a résolu le problème pour moi:

  • Supprimez tous les projets de la bibliothèque Android et les fichiers JAR externes du chemin de génération. 
  • Créez un dossier nommé 'libs' dans votre projet.
  • Placez tous les fichiers .jars externes dans ce dossier. L'ADT doit maintenant les placer sous "Dépendances Android".
  • Réimportez tous vos projets de bibliothèque Android précédents de la manière habituelle.

Le problème est que les fichiers JAR externes ne sont pas placés par défaut dans le dossier "libs" lors de l'utilisation de Propriétés - Chemin de construction Java - Ajouter un fichier JAR externe.

Veuillez vérifier Traitement des dépendances dans les projets Android pour plus de détails.

77
Freddroid
  1. Cliquez avec le bouton droit sur le projet et choisissez Propriétés.
  2. Allez à Java Build Path-Order and Export.
  3. Cochez 'Bibliothèques privées Android'
  4. Cliquez sur Projet, Nettoyer
13
Natt

Pour SDK Tools 17, vous devez renommer le dossier de votre projet de bibliothèque de "lib" à "libs" comme suggéré here . Consultez également this

10
Eleni

Ce site a la solution la plus simple qui a fonctionné pour moi, cochez la case de la bibliothèque sous "Commander et exporter".

http://Android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

5
Georgie

J'ai créé un post rapide dans mon blog expliquant comment résoudre ces problèmes. Cela concerne les bibliothèques et une modification apportée à la façon dont Eclipse gère maintenant les bibliothèques. Vous pouvez le vérifier ici si vous voulez: http://xrigau.wordpress.com/2012/03/22/fix-some-problems-with-libraries-in-the-adt17-plugin-10/

2
Xavi Rigau

Vérifier la commande et sélectionne dans 

Project->Properties->Java build path->Order and Export:

Commandez et sélectionnez:

select Google APIs (optional)
select Dependencies
select Android Private Libraries
[-] src
[-] gen

Et dans les bibliothèques d'onglets:

Dépendances Bibliothèques privées (jars dans le répertoire 'libs') Autres

Travaillé pour moi!

2
Hpsaturn

Ceci est un lien officiel fourni par les développeurs Android de Google . Consultez l'article si vous rencontrez NoClassDefFoundException après Mettre à jour le plugin et/ou le SDK

https://plus.google.com/115995639636688350464/posts/38o8ZA6xQK4

0
JaydeepW

Vérifiez votre bibliothèque gson dans le chemin de construction. Peut-être que la bibliothèque gson n'est pas accessible.

0
Artemis

J'utilise GSON dans un projet de bibliothèque. Par conséquent, pour résoudre ce problème au-delà de l'ajout du fichier jar GSON sur le chemin de génération, il était nécessaire de le déclarer dans le manifeste de mon projet Library, comme ci-dessous:

<uses-library Android:name="com.google.gson" />
0
ademar111190

télécharger le bocal GSON et faire en tant que chemin de classe

0
Srikanth