54 votes

java.lang.ClassNotFoundException sur l'application qui fonctionne

J'ai créé et publié ma première application Android. C'est très simple. Cela fonctionne bien sur le simulateur et certains téléphones, mais je reçois cette erreur:

 java.lang.RuntimeException: Unable to instantiate application cz.teamnovak.droid.Novak ESC Track guide: java.lang.ClassNotFoundException: cz.teamnovak.droid.Novak ESC Track guide in loader dalvik.system.PathClassLoader[/data/app/cz.teamnovak.droid-1.apk]
    at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:649)
    at android.app.ActivityThread.handleBindApplication(ActivityThread.java:4232)
    at android.app.ActivityThread.access$3000(ActivityThread.java:125)
    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2071)
    at android.os.Handler.dispatchMessage(Handler.java:99)
    at android.os.Looper.loop(Looper.java:123)
    at android.app.ActivityThread.main(ActivityThread.java:4627)
    at java.lang.reflect.Method.invokeNative(Native Method)
    at java.lang.reflect.Method.invoke(Method.java:521)
    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
    at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: cz.teamnovak.droid.Novak ESC Track guide in loader dalvik.system.PathClassLoader[/data/app/cz.teamnovak.droid-1.apk]
    at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:243)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:573)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:532)
    at android.app.Instrumentation.newApplication(Instrumentation.java:942)
    at android.app.ActivityThread$PackageInfo.makeApplication(ActivityThread.java:644)
    ... 11 more
 

Une idée de ce qui peut causer ça?

40voto

phreakhead Points 2265

Yep, j'ai eu exactement ce même problème. C'était parce que j'ai spécifié le "android:nom de l'attribut dans le nœud d'application dans le fichier de manifeste.

Votre fichier Manifeste Android ressemble probablement à quelque chose comme ceci:

   <application 
       android:name="Novak ESC Track guide" 
       android:icon="@drawable/icon" 
       android:label="@string/app_name" 
       android:description="@string/help_text" >

Ne pas utiliser le android:nom de l'attribut! C', point de prêter à confusion, n'a rien à voir avec le nom de votre application et est en fait le nom d'une classe supplémentaire à charge avant le chargement de votre application. C'est pourquoi vous obtenez ClassNotFoundException. L'enlever et cela devrait fonctionner:

<application 
    android:icon="@drawable/icon" 
    android:label="@string/app_name" 
    android:description="@string/help_text" >

14voto

hobbs Points 121

Quelque chose comme ceci est arrivé quand j'ai changé la cible de build en 3.2. Après avoir fouillé dans tous les sens, j’ai trouvé qu’un avait nommé le dossier jar lib "lib" au lieu de "libs". Je viens de renommer libs et de mettre à jour les références sur le chemin de génération Java et tout fonctionnait à nouveau. Peut-être que cela aidera quelqu'un ...

10voto

Alex Points 91

Nous avons un couple de projets où cette question a été connecté à tout moment, sur l'Android Market. J'ai trouvé les questions suivantes dans le manifeste:

  1. Si le nom du package est com.test, puis les activités de noms doivent être .ActivityName (avec un point), et pas seulement ActivityName.

  2. Pour certaines classes, ceux qui sont apparues dans les journaux le plus souvent, le nom de classe spécifié en tant que com.test.Name alors qu'il devrait avoir été .Name.

Je suppose que de nombreuses implémentations de android de gérer ces problèmes mineurs avec succès (c'est pourquoi l'exception n'est jamais arrivé dans les essais), tandis que d'autres, quelques-uns sont à jeter l'exception.

5voto

user1303574 Points 51

Avait la même erreur: java.lang.RuntimeException: impossible d'instancier l'activité (classnotfound) FIRST essayer de changer la plate-forme de construction (2.3.3 -> 2.2 -> 2.3.3) a fonctionné pour moi.

5voto

lakshman Points 347

C'est mon observation à l'égard de l'Erreur. J'ai récemment mis à Jour le guide pratique 22.0.1. J'obtiens le message d'Erreur suivant lorsque j'ai importé mes Projets précédents "E/AndroidRuntime(24807): Causée par: java.lang.ClassNotFoundException: com.sherl.sherlockfragmentsapp.StartActivity dans le chargeur de dalvik.système.PathClassLoader[/data/app/com.sherl.sherlockfragmentsapp-1.apk]"

Puis j'ai changé "Propriétés->Java Build Path-> de l'Ordre et de l'Exportation" de la façon suivante [Impossible d'ajouter l'Image à cause des règles du Forum]

  1. Android Bibliothèques Privées - vérifié
  2. Android 4.2.2 - case à cocher
  3. Android Dépendances - vérifié
  4. /src - sélectionné
  5. /gen - sélectionné

Il a résolu le problème. l'espoir c'est vous Aider les gars.

Merci

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X