RuntimeException: impossible d'instancier l'application


97

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 l'application de l'émulateur et que je l'exécute, je n'obtiens pas cette exception, mais lorsque je réexécute l'application installée dans l'émulateur, je l'obtiens. Veuillez aider.


1
si votre package est android.app.Application, essayez de changer le nom du package, semble un peu suspect, ressemble au package de System.
Ce n'est pas vide le

Assurez-vous également que votre application est déclarée dans le manifeste.
dcow

Développez la ligne Caused by: java.lang.NullPointerException. Il devrait y avoir une référence à une ligne dans votre candidature plus tard
Zaid Daghestani

Non, je n'ai aucun package comme vous l'avez mentionné dans ma candidature. L'application est déclarée dans le manifeste comme: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.infy.meetingmanager.activity" android:versionCode="1" android:versionName="1.0" > <application...> <activity android:name=".LoginActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
user182944

Sur quelle version d'Android votre application fonctionne-t-elle, 4.0?
yorkw

Réponses:


194

Il s'agit d'un message d'erreur détaillé généré par le cadre sous-jacent lorsque dalvik réinstalle le fichier .apk et tente de réutiliser ou de recycler l'activité / vue précédemment ouverte à partir du même package (si vous n'avez pas encore fermé l'application installée précédente). Cela n'a rien à voir avec votre application, de plus, il est très peu probable que votre application soit bloquée ou plantée à cause de ce message d'erreur détaillé sur l'appareil de l'utilisateur final.

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

Je ne pense pas que vous devriez trop vous préoccuper 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 l'activité / vue ouverte précédente (qui sont marqués comme étant morts) sont tués et celui qui vient d'être réinstallé apparaît finalement.


2
Salut, Non, mon application n'est ni plantée ni gelée à cause de cette exception, elle fonctionne bien même après la levée de l'exception. Je viens de voir l'exception dans le logcat et je n'étais pas au courant, donc j'ai pensé à demander la même chose. Merci pour l'info, très utile.
user182944

3
J'obtiens cela dans la console de développement d'une application de production. Cela semble se produire principalement avec la version 4.2, mais j'ai également vu une autre version (4.1, 4.4).
Dustin

3
@Dustin, avez-vous résolu ça? Comme cette exception rapporte au plus 34 / semaine! et beaucoup de plaintes dans les messages des utilisateurs!
thecr0w

1
Je l'obtiens toujours localement dans Android 5.1.1.
Sam

1
Cela se produit même sur 5.1.1. Que se passe-t-il?
développeur android

16

Je sais que c'est une question très ancienne, mais cela peut quand même être utile. 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 en cours d'exécution de mon application ne se ferme pas correctement, par exemple en fermant les threads d'arrière-plan avant de quitter.


Oui, le fait d'appuyer sur le bouton d'accueil de mon téléphone, puis de le réexécuter, supprime également cette erreur pour moi.
Aggressor

Cela a du sens, mais comment une application peut-elle se fermer proprement lorsqu'elle est ouverte devant l'utilisateur, puis qu'Android la tue pour la mettre à niveau?
Sam

Vraisemblablement, Android invoque les méthodes onDestroy () dans ce scénario, non? On pourrait l'espérer.
JulianSymes

2

J'ai eu la même erreur lorsque j'ai essayé de me connecter à Internet avec JSOUP dans ma classe d'application. C'était délicat, car l'application fonctionnait sur l'émulateur mais pas sur le périphérique réel. Il s'est avéré que je viens de mal utiliser la bibliothèque JSOUP. Le chargement de la page dans un nouveau fil a résolu mon problème.

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


2

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

entrez la description de l'image ici

entrez la description de l'image ici

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


1

Pour moi, cela a aidé à nettoyer le projet. Dans Eclipse:
- Project -> Clean
Veuillez contrôler ce projet -> Build Automatically is CHECKED
Si le gen-Folder est vide après cela, il y a une erreur dans le res-folder. Souvent, les erreurs dans le dossier res ne sont pas indiquées par la croix rouge! Bonne chance et salutations


Cela n'a pas aidé pour moi. Lorsque j'utilise adbpour mettre à niveau l'un de mes apks de production vers un autre, ce problème se produit, il ne semble donc pas spécifique à l'IDE dans mon cas.
Sam

0

Dans mon cas, cette erreur apparaît après avoir importé le projet Android Maven dans un nouvel espace de travail et le dossier SRC n'a pas été automatiquement ajouté au chemin de construction.

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


0

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

Sélectionnez un projet, allez dans Projet -> Nettoyer


Cela n'a pas aidé pour moi. Lorsque j'utilise adbpour mettre à niveau l'un de mes apks de production vers un autre, ce problème se produit, il ne semble donc pas spécifique à l'IDE dans mon cas.
Sam

0

Dans mon cas, logcat me montre qu'il ne trouve pas l'activité initiale, mais le chemin Dex était différent, c'était "... / data / app / myapp-1" au lieu de "... / data / app / myapp" . J'ai aimé cela en cliquant sur le nom du projet elcipse "myapp" dans la fenêtre de l'explorateur de packages. Puis faites un clic droit dessus, -> refactor-> renommer ... J'ai mis le nom du projet sur myapp-1, puis, -> refactor-> rename ... et de nouveau sur "myapp". Ensuite, cela a fonctionné ... une sorte de bug dans Eclipse?


0

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


0

J'ai vécu cela lorsque j'ai importé mon projet qui a été construit à partir d'une machine différente. Invalidez simplement les caches et redémarrez

Fichier> Invalidate Caches / Restart> Invalidate and restart


0

J'ai changé l'applicationId en quelque chose de différent sur le fichier build.gradle (Module: app), exécutez à nouveau l'application sur mon appareil. Ensuite, j'annule la modification et j'exécute à nouveau l'application 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

Je rencontre cette question. Lors de l'utilisation gradle clean, gradle installDebugcela fonctionne bien!

   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

Solution simple:

Redémarrez simplement votre émulateur ou votre appareil mobile. Et le problème est parti! La raison de ce problème était due à une précédente activité d'application qui a été interrompue à tort.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.