web-dev-qa-db-fra.com

Android Java.lang.NoClassDefFoundError

J'ai un projet Android dans Eclipse IDE qui fonctionnait. Après quelques importations et tests, le message d'erreur suivant apparaît: Java.lang.NoClassDefFoundError.

Dans mon projet, j'ai deux packages: le principal et le second avec quelques classes.

Lorsque j'essaie d'instancier un objet de la deuxième classe de package dans la classe d'activité principale, j'obtiens cette erreur.

Voici le logcat:

FATAL EXCEPTION: main
Java.lang.NoClassDefFoundError: com.neurospeech.wsclient.MDPIforEditorialBoard
at milos.mdpi.Journals.<init>(Journals.Java:41)
at Java.lang.Class.newInstanceImpl(Native Method)
at Java.lang.Class.newInstance(Class.Java:1409)
at Android.app.Instrumentation.newActivity(Instrumentation.Java:1040)
at Android.app.ActivityThread.performLaunchActivity(ActivityThread.Java:1777)
at Android.app.ActivityThread.handleLaunchActivity(ActivityThread.Java:1893)
at Android.app.ActivityThread.access$1500(ActivityThread.Java:135)
at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1054)
at Android.os.Handler.dispatchMessage(Handler.Java:99)
at Android.os.Looper.loop(Looper.Java:150)
at Android.app.ActivityThread.main(ActivityThread.Java:4389)
at Java.lang.reflect.Method.invokeNative(Native Method)
at Java.lang.reflect.Method.invoke(Method.Java:507)
at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:849)
at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:607)
at dalvik.system.NativeStart.main(Native Method)

J'ai trouvé la solution à mon problème:

La solution peut être trouvée ici: http://Android.foxykeep.com/dev/how-to-fix-the-classdefnotfounderror-with-adt-17

55
Miloš

Avez-vous récemment mis à jour votre plugin Eclipse Android (adt r17)?). Le lien suivant pourrait vous aider:

Comment réparer le classdefnotfounderror avec adt-17

Mise à jour: Un an s'est écoulé depuis que la question s'est posée. Je garderai le lien, car même en 2013, il semble que certaines personnes puissent résoudre le problème. Mais veuillez faire attention à ce que vous faites, voir le commentaire Erics ci-dessous. Current ADT-Version est 22, je recommande d'utiliser la version la plus récente.

55
Minsky

Éditez le chemin de construction dans cet ordre, cela a fonctionné pour moi.

Assurez-vous que le /gen est avant /src

enter image description here

27
ASP

J'ai résolu le problème en ajoutant simplement les bibliothèques privées du projet principal à exporter ici:

Project Properties->Java Build Path->Order And Export

Et assurez-vous que Android Les bibliothèques privées sont cochées.

Capture d'écran:

enter image description here

Assure-toi google-play-services_lib.jar et google-play-services.jar sont vérifiés. Nettoyez le projet et relancez-vous. L'exception classNotfound disparaît.

17
ernazm

Vous pouvez également obtenir cette erreur si vous essayez d'inclure un fichier jar compilé avec jdk 1.7 au lieu de 1.6.

Dans mon cas, j'ai compris cela en essayant de conditionner mon application avec les scripts Ant fournis par le SDK, au lieu d'ADT, et j'ai remarqué ces erreurs, qu'ADT ne m'a pas montrées:

  [dex] Pre-Dexing libjingle_peerconnection.jar -> libjingle_peerconnection-2f82c9bf868a6c58eaf2c3b2fe6a09f3.jar
   [dx]
   [dx] trouble processing:
   [dx] bad class file magic (cafebabe) or version (0033.0000)
   [dx] ...while parsing org/webrtc/StatsReport$Value.class
   [dx] ...while processing org/webrtc/StatsReport$Value.class

J'ai recompilé mon pot avec jdk 1.6 et l'erreur a été corrigée.

1
Val Blant

J'ai rencontré ce problème plusieurs fois en ouvrant d'anciens projets incluant d'autres bibliothèques Android. Ce qui fonctionne pour moi, c'est de:

déplacez Android vers le haut dans l'onglet Commande et exportation et désélectionnez-le.

Oui, cela fait vraiment la différence. Peut-être qu'il est temps pour moi de laisser tomber ADT pour Android Studio!

1
multidynamic

Essayez d'aller à Project -> Properties -> Java Build Path -> Order & Export Et Confirmez Android Bibliothèques privées sont cochés pour votre projet et pour tous les autres projets de bibliothèque que vous utilisez dans votre application.

1
IntelliJ Amiya

Imaage

Allez dans Commander et exporter depuis les propriétés du projet et assurez-vous d'inclure les bocaux requis dans l'exportation, cela m'a été utile.

1
Haroon Dilshad

Après vérification Java Chemin de construction, ajoutez ensuite des lignes de code dans le fichier manifeste.

<meta-data
            Android:name="com.google.Android.gms.version"
            Android:value="@integer/google_play_services_version" />
0
Faakhir