ClassNotFoundException: Klasse auf Pfad nicht gefunden: DexPathList
Ich habe ein problem, seit ich meine aktualisierten App auf playstore. Seit diesem update wird die exception geworfen wird, aber ich habe nicht geändert, alles im Zusammenhang zu dieser Ausnahme.
Stacktrace:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{de.opiatefuchs.onthejobtimerlight/de.opiatefuchs.onthejobtimerlight.OnTheJobTimerActivity}: java.lang.ClassNotFoundException: Didn't find class "de.opiatefuchs.onthejobtimerlight.OnTheJobTimerActivity" on path: DexPathList[[zip file "/data/app/de.opiatefuchs.onthejobtimerlight-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2236)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)
at android.app.ActivityThread.access$800(ActivityThread.java:151)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:135)
at android.app.ActivityThread.main(ActivityThread.java:5254)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)
Caused by: java.lang.ClassNotFoundException: Didn't find class "de.opiatefuchs.onthejobtimerlight.OnTheJobTimerActivity" on path: DexPathList[[zip file "/data/app/de.opiatefuchs.onthejobtimerlight-1/base.apk"],nativeLibraryDirectories=[/vendor/lib, /system/lib]]
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:56)
at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
at java.lang.ClassLoader.loadClass(ClassLoader.java:469)
at android.app.Instrumentation.newActivity(Instrumentation.java:1066)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2226)
... 10 more
Suppressed: java.lang.ClassNotFoundException: de.opiatefuchs.onthejobtimerlight.OnTheJobTimerActivity
at java.lang.Class.classForName(Native Method)
at java.lang.BootClassLoader.findClass(ClassLoader.java:781)
at java.lang.BootClassLoader.loadClass(ClassLoader.java:841)
at java.lang.ClassLoader.loadClass(ClassLoader.java:504)
... 13 more
Caused by: java.lang.NoClassDefFoundError: Class not found using the boot class loader; no stack available
Die Sache ist, mein App-version vor, läuft ohne Probleme und ich habe nicht verändert nichts im Zusammenhang mit dieser Tätigkeit. Ich habe gerade eine neue info-Dialogfeld, das hat nichts zu tun mit dieser Tätigkeit. Diese app ist eine Kostenlose lite-version, die Ich machte genau dieselben Veränderungen auf die pro-version und es wird nichts geworfen. Dies funktioniert wie erwartet.
Der einzige Unterschied zwischen pro und lite ist ich habe integrierter Admob (auf neue Weise) in der lite-version und Google-Play-Lizenz in der pro-version. Aber dieses ich integriert haben seit dem Anfang nicht verändert.
Ich habe auch noch keine änderungen vorgenommen, die das manifest, habe ich viele Beiträge gelesen hier, aber nichts hilft.
Es scheint, dass es nur passiert auf Android-Versionen ab 5.0 . Hat jemand eine Idee was dieses problem verursachen könnte oder hat jemand die gleichen Erfahrungen? Ist es möglich, dass proguard nur zerstört, nichts von Verschleierung (auch hier, keine änderungen)?
Geschrieben ich keinen code, denn es ist nicht wichtig für dieses problem, wie ich schon sagte, ich habe keine änderungen im Zusammenhang mit dieser Ausnahme.
Diese Frage wird gekennzeichnet als Duplikate, aber es isnt. Der Kommentar mit den link nicht beheben mein problem, alle Bibliotheken sind geprüft und integriert in der rechten Weise. Auch, ich benutze keine NDK.
InformationsquelleAutor der Frage Opiatefuchs | 2015-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Update
Nach einer langen Zeit, Es stellte sich heraus, dass es muss etwas zu tun haben mit proguard. Ich kann nicht wirklich sagen, was genau den Fehler verursacht, aber ich habe versucht, ein wenig und das ist was aufgefallen (ja, das ist in meinem Fall mit Eclipse IDE):
Sind die vier Punkte, die ich getan habe und dann hat es geklappt. Das sieht verdächtig aus, aber ich denke, es ist ein problem mit der Verschleierung. Denn ohne diese Punkte, kann ich einfach kompilieren meine apk und installieren Sie es von eclipse. Für mich gibt es keinen offensichtlichen Grund für dieses Verhalten.
Auch der Paket-name funktioniert, ohne eine Veränderung wenn ich nur die installieren von eclipse.
Ich hoffe, diese Punkte helfen kann jemand.
InformationsquelleAutor der Antwort Opiatefuchs
Wenn Sie manifest-Paket der name ist ok,
Wenn Sie clossed das Projekt,
und im Datei-explorer umbenannt Ihr Projekt
aber nach dem Import werden Sie wieder auf dieses problem stoßen
der einzige Weg ist hier zu
LÖSCHEN SIE DIESEN ORDNER .gradle.
Diese kann gefunden werden im Projekt-Ordner mit dem Datei-explorer.
Es hat Artefakt-Dateien enthalten, die alten Projektnamen.
Nachdem Sie öffnen Sie das Projekt in Android Studio, der Ordner wird automatisch neu erstellt.
InformationsquelleAutor der Antwort CodeToLife
Ich habe gerade meine gradle von com.android.tools.bauen:gradle:2.2.2 com.android.tools.bauen:gradle:2.2.0,und das problem ist gut!
InformationsquelleAutor der Antwort 林志文
Für mich, es geschah, als Paket-name - (directory-name) geändert wurde.
Erkannte ich, dass die "build" - Ordner magisch unterhält temporäre Dateien für das Projekt zu bauen. Ich gelöscht "build" - Ordner unter "app" - Ordner. Jetzt die gradle hatte erneut alle Dateien mit den neuen Paketnamen. Jetzt funktioniert ' s richtig.
InformationsquelleAutor der Antwort HBB20
Ich denke es hat etwas zu tun mit multidex und mehrere package-Namen, wenn Sie mehrere Module . Reinigen Sie das Projekt und löschen Sie alle build/Ordner.
InformationsquelleAutor der Antwort Ozzz
tl;dr: Dies scheint verursacht zu werden durch die Kombination von relativer und absoluter Erklärung in der
AndroidManifest.xml
. Ich denke, die beste Lösung ist, auf die relative notation bei der Deklaration<application .../>
<activity .../>
<receiver .../>
und<service .../>
's in IhremAndroidManifest.xml
.Vollständige Erklärung:
Ich hatte LANGE mit diesem problem, es war, weil ich mit beiden absolute und relative
<application .../>
<activity .../>
<receiver .../>
und<service .../>
Erklärungen in meinemAndroidManifest.xml
. Hier ist, was ich Tat, um es zu beheben:In Sie
AndroidManifest.xml
stellen Sie sicher, dass die<manifest .../>
Abschnitt hat espackage:
- Eigenschaft angegeben wird, richtig, es müssen die genauen absoluten Pfad, etwa so:Nun, dass Sie den richtigen absoluten Pfad angegeben in Ihrem
<manifest .../>
Abschnitt, müssen Sie einen relativen Pfad verwenden, für alle<application .../>
<activity .../>
<receiver .../>
und<service .../>
's definiert in IhremAndroidManifest.xml
.Beispiele:
Natürlich auch sicher sein, zu reinigen Sie das Projekt.
InformationsquelleAutor der Antwort Sakiboy
Manchmal, wenn wir generieren signierte apk-Datei, die, wenn wir haben einige Abhängigkeit library-Problem(doppelte jar-Bibliothek), dann kann dieser Fehler aufgetreten ist. Bitte überprüfen Sie die build-Pfad und entfernen Sie doppelte Bibliothek, und überprüfen Sie, ob jede Bibliothek wird nicht überprüft, um-und export-Registerkarte.
InformationsquelleAutor der Antwort Dhiren
War ich immer zu ähnlichen Fehler.
ich habe die Lösung hier.
Wenn Ihre manifest-Datei ist nicht richtig, dann Folgen diese
InformationsquelleAutor der Antwort Atul Panda
Der Grund dafür ist, dass android nicht in der Lage zu finden, die spezifische Aktivität in der dexpath.
Also sollten wir bieten den gesamten Pfad der Aktivitäten, die im "Manifest-Datei".
beispielsweise Ihre Aktivität name ist "SplashActivity" und es ist dort, im " com.packagename.Paket". Also sollten wir das gesamte Paket name der Aktivität.
InformationsquelleAutor der Antwort Kona Suresh
Ich hatte ein ähnliches problem, hier meine Lösung:
InformationsquelleAutor der Antwort Jaleel Adesina
Fügte ich
InformationsquelleAutor der Antwort SpyZip
Ich bekam ähnliche Fehler nach dem ändern mein Verzeichnis-Namen, indem Sie einfach umbenennen Verzeichnis und importieren. Nicht in der Lage zu installieren nicht mehr. Weder re-USB-debugging aktivieren noch neu erstellen Projekt arbeiten.
Ich es lösen, indem Sie neues Projekt erstellen und manuell kopieren Sie alle relevanten Inhalte zum neuen Projekt.
InformationsquelleAutor der Antwort 林果皞