RuntimeException: Anwendung kann nicht instanziiert werden


97

Wenn ich meine Anwendung ausführe, erhalte ich jedes Mal die folgende Ausnahme in meinem 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

Hinweis: Wenn ich die App vom Emulator deinstalliere und ausführe, wird diese Ausnahme nicht angezeigt. Wenn ich die installierte Anwendung im Emulator erneut ausführe, wird diese Ausnahme angezeigt. Bitte helfen Sie.


1
Wenn Ihr Paket android.app.Application ist, versuchen Sie, den Paketnamen zu ändern. Es sieht verdächtig aus und sieht aus wie das Paket von System.
Es ist nicht leer

Stellen Sie außerdem sicher, dass Ihre App im Manifest deklariert ist.
dcow

Erweitern Sie die Zeile Verursacht durch: java.lang.NullPointerException. Es sollte einen Verweis auf eine Zeile in Ihrer Bewerbung weiter unten geben
Zaid Daghestani

Nein, ich habe kein Paket, wie Sie es in meiner Bewerbung erwähnt haben. App wird im Manifest deklariert als: <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

Auf welcher Android-Version läuft Ihre App 4.0?
Yorkw

Antworten:


194

Dies ist eine ausführliche Fehlermeldung, die vom zugrunde liegenden Framework ausgelöst wird, wenn dalvik die APK-Datei erneut installiert und versucht, die zuvor geöffnete Aktivität / Ansicht aus demselben Paket wiederzuverwenden oder zu recyceln (wenn Sie die zuvor installierte App noch nicht geschlossen haben). Es hat nichts mit Ihrer App zu tun. Außerdem ist es sehr unwahrscheinlich, dass Ihre App aufgrund dieser ausführlichen Fehlermeldung auf dem Gerät des Endbenutzers eingefroren oder abgestürzt wird.

Es scheint, dass dieses ausführliche Dalvik-Fehlerprotokoll nur auf einem Android 4.0-System aufgetreten ist. Ich habe es selbst auf einer Android 3.2- und 2.3.3-Laufumgebung getestet, in der Sie nicht replizieren können, um diese Meldung auf keinem von beiden anzuzeigen. Eine ähnliche Frage wurde bereits zuvor hier diskutiert und jemand hat einen Fehlerbericht in Android Issues Tracker ausgefüllt .

Ich denke nicht, dass Sie sich im Moment zu viele Sorgen um dieses ausführliche Fehlerprotokoll machen sollten. Wenn Sie vor und nach diesem roten Fehler in Logcat mehr Protokolle anzeigen, können Sie die gesamte Geschichte sehen und feststellen, dass die zuvor geöffnete Aktivität / Ansicht (welche sind als gestorben markiert) werden getötet und der neu installierte wird letztendlich geknallt.


2
Hallo, nein, meine App ist aufgrund dieser Ausnahme weder abgestürzt noch eingefroren. Sie funktioniert auch nach dem Auslösen der Ausnahme einwandfrei. Ich habe gerade die Ausnahme im Logcat gesehen und war mir dessen nicht bewusst, daher dachte ich daran, dasselbe zu fragen. Danke für die Info, eine sehr nützliche.
user182944

3
Ich bekomme dies in der Entwicklerkonsole einer Produktionsanwendung. Es scheint hauptsächlich mit 4.2 zu passieren, aber ich habe auch andere Versionen gesehen (4.1, 4.4).
Dustin

3
@Dustin, hast du das gelöst? Da diese Ausnahmen höchstens 34 / Woche melden! und viele Beschwerden in User-Nachrichten!
thecr0w

1
Ich bekomme es immer noch lokal in Android 5.1.1.
Sam

1
Es tritt sogar am 5.1.1 auf. Was ist los?
Android-Entwickler

16

Mir ist klar, dass es eine sehr alte Frage ist, aber das kann trotzdem nützlich sein. Ich habe festgestellt, dass dieser Fehler in meiner eigenen Entwicklung darauf zurückzuführen ist, dass die zuvor ausgeführte Instanz meiner App nicht ordnungsgemäß geschlossen wurde, z. B. indem Hintergrund-Threads vor dem Beenden heruntergefahren wurden.


Ja, wenn Sie die Home-Taste auf meinem Telefon drücken und diese dann erneut ausführen, wird dieser Fehler auch für mich behoben.
Aggressor

Sinnvoll, aber wie kann eine App ordentlich geschlossen werden, wenn sie vor dem Benutzer geöffnet ist und Android sie dann beendet, um sie zu aktualisieren?
Sam

Vermutlich ruft Android in diesem Szenario onDestroy () -Methoden auf, nicht wahr? Man würde es hoffen.
JulianSymes

2

Ich habe den gleichen Fehler erhalten, als ich versucht habe, mit JSOUP in meiner Anwendungsklasse eine Verbindung zum Internet herzustellen. Es war schwierig, weil die Anwendung auf dem Emulator ausgeführt wurde, aber nicht auf dem tatsächlichen Gerät. Es stellte sich heraus, dass ich die JSOUP-Bibliothek nur falsch verwendet habe. Das Laden der Seite in einen neuen Thread hat mein Problem gelöst.

Hoffe ich habe jemandem geholfen.


2

Hoffe das hilft jemandem. Gehen Sie zu den laufenden Apps auf Ihrem Emulator, indem Sie auf Folgendes klicken:

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Schließen Sie die App, die Sie installieren möchten, und führen Sie sie erneut aus. KEINE Notwendigkeit, App zu deinstallieren / neu zu installieren oder Projekt zu bereinigen.


1

Für mich hat es geholfen, das Projekt zu reinigen. In Eclipse:
- Projekt -> Bereinigen
Bitte steuern Sie, dass Projekt -> Automatisch erstellen ÜBERPRÜFT ist
Wenn der Gen-Ordner danach leer ist, liegt ein Fehler im Res-Ordner vor. Oft werden Fehler im Res-Ordner nicht durch das rote Kreuz angezeigt! Viel Glück und Grüße


Hat mir nicht geholfen. Wenn ich ein adbUpgrade von einem meiner Produktions-Apks auf ein anderes verwende, tritt dieses Problem auf, sodass es in meinem Fall nicht spezifisch für die IDE zu sein scheint.
Sam

0

In meinem Fall tritt dieser Fehler auf, nachdem ich das Android Maven-Projekt in einen neuen Arbeitsbereich importiert habe und der SRC-Ordner nicht automatisch zum Erstellungspfad hinzugefügt wurde.

Klicken Sie mit der rechten Maustaste auf das Projekt / Erstellungspfad / Erstellungspfad konfigurieren / Quelle - prüfen Sie, ob Quellen fehlen.


0

Ich habe das gleiche Problem. Die Reinigung des Projekts hat bei mir funktioniert.

Projekt auswählen gehen Sie zu Projekt -> Reinigen


Hat mir nicht geholfen. Wenn ich ein adbUpgrade von einem meiner Produktions-Apks auf ein anderes verwende, tritt dieses Problem auf, sodass es in meinem Fall nicht spezifisch für die IDE zu sein scheint.
Sam

0

In meinem Fall hat mir logcat gezeigt, dass die ursprüngliche Aktivität nicht gefunden werden konnte, aber der Dex-Pfad war anders. Es war "... / data / app / myapp-1" anstelle von "... / data / app / myapp". . Ich habe dies durch Klicken auf den elcipse-Projektnamen "myapp" im Paket-Explorer-Fenster behoben. Klicken Sie dann mit der rechten Maustaste darauf, -> refactor-> umbenennen ... Ich setze den Projektnamen auf myapp-1 und dann -> refactor-> umbenennen ... und wieder zurück auf "myapp". Dann hat es funktioniert ... irgendein Kinf von Bug in Eclipse?


0

Ich habe das gleiche Problem. Durch Deinstallieren und erneutes Installieren meiner App wurde das Problem behoben.


0

Ich habe dies erlebt, als ich mein Projekt importiert habe, das von einer anderen Maschine erstellt wurde. Caches einfach ungültig machen und neu starten

Datei> Caches ungültig machen / neu starten> Ungültig machen und neu starten


0

Ich habe die applicationId in der Datei build.gradle (Modul: app) in etwas anderes geändert und die App erneut auf meinem Gerät ausgeführt. Dann mache ich die Änderung rückgängig und starte die App erneut und alles funktioniert. Es funktioniert auf Android Studio 2.3.1 und 4 verschiedenen Geräten, die ich hier habe, von 5.0 bis 7.0.


0

Ich treffe diese Frage. Bei Verwendung gradle clean, gradle installDebuges funktioniert 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

Einfache Lösung:

Starten Sie einfach Ihren Emulator oder Ihr Mobilgerät neu. Und das Problem ist weg! Der Grund für dieses Problem war, dass eine frühere App-Aktivität fälschlicherweise gestoppt wurde.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.