web-dev-qa-db-fra.com

RuntimeException: impossible d'instancier l'application

Lorsque j'exécute mon application, à chaque fois que j'obtiens l'exception ci-dessous dans mon logcat:

 04-14 09:29:53.965: W/dalvikvm(1020): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
    04-14 09:29:53.985: E/AndroidRuntime(1020): FATAL EXCEPTION: main
    04-14 09:29:53.985: E/AndroidRuntime(1020): Java.lang.RuntimeException: Unable to instantiate application   Android.app.Application: Java.lang.NullPointerException
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.LoadedApk.makeApplication(LoadedApk.Java:482)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:3938)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.ActivityThread.access$1300(ActivityThread.Java:123)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1185)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.os.Handler.dispatchMessage(Handler.Java:99)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.os.Looper.loop(Looper.Java:137)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.ActivityThread.main(ActivityThread.Java:4424)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Java.lang.reflect.Method.invokeNative(Native Method)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Java.lang.reflect.Method.invoke(Method.Java:511)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:784)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:551)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at dalvik.system.NativeStart.main(Native Method)
    04-14 09:29:53.985: E/AndroidRuntime(1020): Caused by: Java.lang.NullPointerException
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.LoadedApk.initializeJavaContextClassLoader(LoadedApk.Java:362)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.LoadedApk.getClassLoader(LoadedApk.Java:305)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     at Android.app.LoadedApk.makeApplication(LoadedApk.Java:474)
    04-14 09:29:53.985: E/AndroidRuntime(1020):     ... 11 more

Remarque: lorsque je désinstalle et exécute l'application de l'émulateur, je ne reçois pas cette exception, mais lorsque je ré-exécute l'application installée dans l'émulateur, je l'obtiens. S'il vous plaît aider.

96
user182944

Ceci est un message d'erreur détaillé de la structure sous-jacente lorsque dalvik réinstalle le fichier .apk et tente de réutiliser ou de recycler l'activité/la vue ouverte précédente du même package (si vous n'avez pas encore fermé l'application précédemment installée). Cela n'a rien à voir avec votre application. En outre, il est très peu probable que votre application soit bloquée ou bloquée par ce message d'erreur détaillé sur le périphérique de l'utilisateur final.

Il semble que ce journal des erreurs dalvik verbose ne se produise que sur le système Android 4.0, je l’ai moi-même testé sur Android 3.2 et 2.3.3, où vous ne pouvez pas répliquer pour que ce message n'apparaisse sur aucun d'entre eux.Une question similaire a déjà été abordée à l'adresse ici et quelqu'un a rempli un rapport de bogue dans Android Issues Tracker .

Je ne pense pas que vous devriez vous préoccuper beaucoup de ce journal d’erreurs détaillé pour le moment. Si vous regardez plus de journaux avant et après cette erreur rouge dans Logcat, vous pouvez voir l’histoire complète et constater que la précédente activité/vue ouverte (qui sont marqués comme étant morts) se faire tuer et celui qui vient d'être réinstallé est finalement affiché.

194
yorkw

Je me rends compte que c'est une très vieille question, mais cela peut être utile quand même. J'ai constaté que lorsque j'observe cette erreur dans mon propre développement, cela est dû au fait que l'instance précédemment exécutée de mon application ne se ferme pas correctement, par exemple en fermant les threads d'arrière-plan avant de quitter.

16
JulianSymes

La même erreur s'est produite lorsque j'ai essayé de me connecter à Internet avec JSOUP dans ma classe d'applications. C'était délicat, car l'application fonctionnait sur un émulateur mais pas sur un périphérique réel. Il s’est avéré que j’avais mal utilisé la bibliothèque JSOUP. Chargement de la page dans le nouveau fil résolu mon problème.

J'espère que j'ai aidé quelqu'un.

2
Yoda066

J'espère que ça aide quelqu'un. Accédez aux applications en cours d'exécution sur votre émulateur en cliquant sur ceci:

enter image description here

enter image description here

Fermez l'application que vous essayez d'installer, puis exécutez-la à nouveau. PAS besoin de désinstaller/réinstaller l'application ou de nettoyer le projet.

2
ojonugwa ochalifu

Pour moi, cela a aidé à nettoyer le projet. Dans Eclipse:
- Projet -> Nettoyer
Veuillez contrôler que le projet -> Construire automatiquement est VÉRIFIÉ
Si le gen-Folder est vide après cela, il y a une erreur dans le dossier res. Souvent, les erreurs dans le dossier res ne sont pas signalées par la croix rouge! Bonne chance et salutations

1
stefan96

J'ai changé l'applicationId en quelque chose de différent sur le fichier build.gradle (Module: app), puis réexécutez l'application sur mon appareil. Ensuite, j'annule le changement et lance l'application à nouveau et tout fonctionne. Cela fonctionne sur Android Studio 2.3.1 et 4 appareils différents que j'ai ici, de 5.0 à 7.0.

0
Davi Caetano

J'ai vécu cette expérience lorsque j'ai importé mon projet, construit à partir d'une machine différente. Il suffit d'invalider les caches et de redémarrer

Fichier> Invalider les caches/redémarrer> Invalider et redémarrer

0
Anish

Je rencontre cette question. Quand utiliser gradle clean, gradle installDebug ça marche ok!

   AndroidRuntime  D  Shutting down VM
E  FATAL EXCEPTION: main
E  Process: tv.panda.live.broadcast, PID: 4685
E  Java.lang.RuntimeException: Unable to instantiate application tv.panda.live.broadcast.PandaApplication: Java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" o
   n path: DexPathList[[Zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDirectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at Android.app.LoadedApk.makeApplication(LoadedApk.Java:572)
E      at Android.app.ActivityThread.handleBindApplication(ActivityThread.Java:4883)
E      at Android.app.ActivityThread.access$1500(ActivityThread.Java:178)
E      at Android.app.ActivityThread$H.handleMessage(ActivityThread.Java:1573)
E      at Android.os.Handler.dispatchMessage(Handler.Java:111)
E      at Android.os.Looper.loop(Looper.Java:194)
E      at Android.app.ActivityThread.main(ActivityThread.Java:5691)
E      at Java.lang.reflect.Method.invoke(Native Method)
E      at Java.lang.reflect.Method.invoke(Method.Java:372)
E      at com.Android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.Java:959)
E      at com.Android.internal.os.ZygoteInit.main(ZygoteInit.Java:754)
E  Caused by: Java.lang.ClassNotFoundException: Didn't find class "tv.panda.live.broadcast.PandaApplication" on path: DexPathList[[Zip file "/data/app/tv.panda.live.broadcast-1/base.apk"],nativeLibraryDi
   rectories=[/data/app/tv.panda.live.broadcast-1/lib/arm, /vendor/lib, /system/lib]]
E      at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.Java:56)
E      at Java.lang.ClassLoader.loadClass(ClassLoader.Java:511)
E      at Java.lang.ClassLoader.loadClass(ClassLoader.Java:469)
E      at Android.app.Instrumentation.newApplication(Instrumentation.Java:988)
E      at Android.app.LoadedApk.makeApplication(LoadedApk.Java:567)
E      ... 10 more
E      Suppressed: Java.lang.ClassNotFoundException: tv.panda.live.broadcast.PandaApplication
E          at Java.lang.Class.classForName(Native Method)
E          at Java.lang.BootClassLoader.findClass(ClassLoader.Java:781)
E          at Java.lang.BootClassLoader.loadClass(ClassLoader.Java:841)
E          at Java.lang.ClassLoader.loadClass(ClassLoader.Java:504)
E          ... 13 more
E      Caused by: Java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
0
androidmalin

Dans mon cas, logcat montre que l'activité initiale n'a pas été trouvée, mais le chemin Dex était différent, il s'agissait de ".../data/app/myapp-1" au lieu de ".../data/app/myapp" . J'ai choisi cette option en cliquant sur le nom de projet elcipse "myapp" dans la fenêtre de l'Explorateur de packages. Ensuite, faites un clic droit dessus, -> refactor> renommer ... Je donne le nom du projet à myapp-1, puis -> refactor-> renommer ... et revenez à "myapp". Ensuite, ça a fonctionné ... un genre de bug dans Eclipse?

0
ldt

Dans mon cas, cette erreur apparaît après que j'ai importé Android Projet Maven dans un nouvel espace de travail et le dossier SRC n'a pas été ajouté automatiquement au chemin de génération.

Faites un clic droit sur le projet/Chemin de construction/Configurer le chemin de construction/Source - vérifiez s'il y a des sources manquantes.

0
Andrey Uglev

J'ai le même problème. La désinstallation de mon application, puis sa réinstallation ont résolu le problème.

0
swati

J'ai le même problème. Nettoyer le projet a fonctionné pour moi.

Sélectionnez le projet allez dans Projet -> Nettoyer

0
cnuis2cool