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.

user182944
la source
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.

Yorkw
la source
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.

JulianSymes
la source
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.

Yoda066
la source
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.

Ojonugwa Jude Ochalifu
la source
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

stefan96
la source
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.

Andrey Uglev
la source
0

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

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

cnuis2cool
la source
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?

ldt
la source
0

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

swati
la source
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

Anish
la source
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.

Davi Caetano
la source
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
androidmalin
la source
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.

Prajwal W
la source