10-22 15:29:40.897: E/AndroidRuntime(2561): FATAL EXCEPTION: main
10-22 15:29:40.897: E/AndroidRuntime(2561): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.gvg.simid/com.gvg.simid.Login}: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2137)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.access$600(ActivityThread.java:141)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.os.Handler.dispatchMessage(Handler.java:99)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.os.Looper.loop(Looper.java:137)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.main(ActivityThread.java:5103)
10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.reflect.Method.invokeNative(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.reflect.Method.invoke(Method.java:525)
10-22 15:29:40.897: E/AndroidRuntime(2561): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
10-22 15:29:40.897: E/AndroidRuntime(2561): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
10-22 15:29:40.897: E/AndroidRuntime(2561): at dalvik.system.NativeStart.main(Native Method)
10-22 15:29:40.897: E/AndroidRuntime(2561): Caused by: java.lang.ClassNotFoundException: Didn't find class "com.gvg.simid.Login" on path: DexPathList[[zip file "/data/app/com.gvg.simid-1.apk"],nativeLibraryDirectories=[/data/app-lib/com.gvg.simid-1, /vendor/lib, /system/lib]]
10-22 15:29:40.897: E/AndroidRuntime(2561): at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:53)
10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
10-22 15:29:40.897: E/AndroidRuntime(2561): at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.Instrumentation.newActivity(Instrumentation.java:1061)
10-22 15:29:40.897: E/AndroidRuntime(2561): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2128)
10-22 15:29:40.897: E/AndroidRuntime(2561): ... 11 more
Ich bin mir nicht sicher, was es verursacht, da es im Manifest korrekt aufgeführt ist:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.gvg.simid"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="18" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.BLUETOOTH" />
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
<uses-permission android:name="android.permission.CAMERA"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_LOGS" />
<uses-permission android:name="android.permission.READ_OWNER_DATA" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_OWNER_DATA" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK" />
<uses-feature android:name="android.hardware.usb.host" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<activity
android:name="com.gvg.simid.Login"
android:label="@string/app_name"
android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Ich habe auch "Android Private Libraries" hinzugefügt, um den Pfad zu erstellen, und ihn an die Spitze von "Order and Export" verschoben, aber es gab mir immer noch den gleichen Fehler.
BEARBEITEN: Ich habe das Projekt komplett neu erstellt und konnte den Fehler nicht reproduzieren. Ich bin mir nicht sicher, was es verursacht hat.
Antworten:
Ich hatte das gleiche Problem für mein Projekt. Dies geschah aufgrund des Konflikts in der Android-Support-Bibliotheksversion zwischen meinem Projekt und dem Bibliotheksprojekt, das ich in meinem Projekt hinzugefügt habe. Fügen Sie die gleiche Version der Android-Unterstützungsbibliothek in Ihr Projekt und die Bibliotheksprojekte ein, die Sie aufgenommen haben, und erstellen Sie sie sauber ... Alles wird funktionieren ...
quelle
Diese folgende Methode hat bei mir funktioniert
project
und wählen Sieproperties
Java Build Path
->Order and Export
"Android Dependencies"
clean your project
und rennenquelle
project
? Was bedeutet das?Für diejenigen unter Ihnen, die dieses Problem in Android Studio haben, hatte ich das gleiche Problem nach einer Zusammenführung und aus irgendeinem Grund blieb es sogar nach
clean
undinvalidate cash/restart
Operationen bestehen, die mich verrückt machten.Es stellt sich heraus, dass dies behoben werden kann, indem gradle build einmal über die Befehlszeile ausgeführt wird. Führen Sie einfach Folgendes im Projektverzeichnis aus:
Ich hoffe, es würde jemandem die Zeitverschwendung und Frustration ersparen, die ich durchmachen musste.
quelle
Ich hatte das gleiche Problem, das hat bei mir funktioniert
1) Vollständiger Aktivitätspfad im Hauptfest anstelle des relativen Pfades.
2) Löschen Sie den Ordner 'build' und bereinigen Sie das Projekt.
quelle
Wenn Sie Eclipse verwenden, versuchen Sie Projekt -> Bereinigen
quelle
Dies geschieht, wenn wir den Erstellungspfad der APP ändern. Dies kann in jedem Fall das Hinzufügen oder Entfernen oder Ändern von Bibliotheken oder JAR-Dateien sein. Die beste Lösung besteht darin, die Eclipse neu zu starten.
quelle
Wenn Sie
Library Project
Ihrem Android-Projekt ein neues Modul hinzugefügt haben und esKotlin
in Ihrer Bibliothek verwenden, vergessen Sie nicht, es hinzuzufügenan den Anfang der Gradle-Datei Ihres Moduls. Android Studio fügt diese Zeile nicht hinzu, wenn Sie ein neues Modul erstellt haben, und dies kann Ihre Stunden wie ich verschwenden.
Bearbeiten: Nach einer Weile hatte ich wieder Probleme mit diesem Problem und dieses Mal vergaß ich, mein Modul als Abhängigkeit vom Projekt hinzuzufügen. :) :)
quelle
Wenn Sie diesen Fehler erhalten, während Sie die neue Instant Run-Funktion in Android Studio 2.0 und höher verwenden, ist dies eine Art Fehler auf ihrer Seite.
Um dies zu beheben, müssen Sie Ihre App manuell auf dem Gerät / Emulator stoppen, wenn sie nicht gestoppt ist, und dann in Android Studio auswählenBuild→Rebuild Project .
Klicken Sie dann auf die Schaltfläche Ausführen oder UMSCHALT + F10
quelle
Für jeden, der Multidex aktiviert hat, schreiben Sie dies
innerhalb von build.gradle
schreibe eine Klasse
EnableMultiDex
wie untenund
AndroidManifest.xml
schreiben Sie diesen Klassennamen in das Application-Tagquelle
MultiDexApplication
Klasse zu Klasse zu erweiternApplication
.MultiDexApplication
und Ausnahme auf Android 4.4 verschwunden.Wenn Sie Multidex unter Android 4.4 und früheren Versionen verwenden , besteht das Problem möglicherweise darin, dass sich Ihre Aktivitätsklasse in der zweiten Dex-Datei befindet und daher vom Android-System nicht gefunden wird.
Informationen zum Beibehalten Ihrer Aktivitätsklasse in der Haupt-Dex-Datei finden Sie auf dieser Seite:
https://developer.android.com/studio/build/multidex.html#keep
Verwenden Sie Android Studio, um herauszufinden, welche Klassen sich in einer Dex-Datei befinden .
Ziehen Sie Ihre apk einfach per Drag & Drop in Android Studio. Sie sollten in der Lage sein, Ihre Dex-Dateien im apk-Explorer zu sehen.
Wählen Sie dann die Dex-Datei aus, um zu sehen, welche Klassen sich darin befinden.
Eine andere Alternative ist Dexdump:
Sie können den Inhalt Ihrer in Ihrer apk enthaltenen Dex-Dateien mit dem Befehl dexdump überprüfen, der sich in befindet
Für Windows-Benutzer siehe dieses Tool, das ich erstellt habe, um den Prozess zu vereinfachen
quelle
In meinem Fall war es der Proguard-Minimierungsprozess, der einige wichtige Klassen aus meiner Produktions-Apk entfernte.
Die Lösung bestand darin, die Datei proguard-rules.pro zu bearbeiten und Folgendes hinzuzufügen:
quelle
1) Erstellen Sie libs Ordner unter Projektstamm
2) Kopieren Sie die JAR - Datei in das
3) Konfigurieren Sie den Build - Pfad (Add jar)
4) Sauber und laufen
prost :-)
quelle
Ob Sie es glauben oder nicht ... Ich habe fast jede Antwort ausprobiert, die ich hier auf stackoverflow gefunden hatte. Nichts würde helfen, bis ich gerade die Maschine neu gestartet habe. Mein Android Studio funktioniert unter Ubuntu 16.04 LTS.
quelle
Dieser Fehler trat einmal auf, als ich eine Klasse definierte, die eine Ansicht erweiterte, aber auf diese benutzerdefinierte Ansicht in der Layoutdatei mit dem falschen Namen verwies. Stattdessen
<com.example.customview/>
hatte ich<com.customview/>
in die XML-Layoutdatei aufgenommen.quelle
Ich stand vor dem gleichen Problem und löste es wie folgt:
Wählen Sie im Build-Menü die Option
1- Projekt reinigen.
2- APK erstellen.
quelle
Ich habe das gleiche Problem festgestellt und festgestellt, dass der Beispielcode im Verzeichnis "java" anstelle des Verzeichnisses "src" abgelegt wurde. Nach dem Verschieben des Codes nach src wurde das Problem behoben.
Stellen Sie außerdem sicher, dass das App-Verzeichnis in mehrere Ordner aufgeteilt ist. zB
/main/com/site/appname/
nicht/main/com.site.appname/
Hoffe es funktioniert ~
quelle
Ich habe das gleiche Problem und nach viel Arbeit und Suche habe ich die Lösung gefunden: Ich habe gerade das Projekt bereinigt und dann die apk erstellt. -Build-> Clean Project -Build-> Build APK (s) Ich hoffe es ist nützlich .....
quelle
Ich hatte dieses Problem vor kurzem und ich verwende Android Studio 0.8.4
Das Problem war die Tatsache, dass ich beschlossen habe, eine XML-Menü-Layoutdatei mit dem Namen main.xml umzubenennen.
Klicken Sie mit der rechten Maustaste darauf und wählen Sie Refactor -> Rename . Deaktivieren Sie vor dem Umbenennen unbedingt "In Kommentaren und Zeichenfolgen suchen " und drücken Sie " Refactor" .
Da meine Datei ursprünglich den Namen 'main' hatte , wurden kritische Pfade in app.iml und build.gradle umbenannt, hauptsächlich java.srcDirs in build.gradle, da der Pfad als definiert ist
'src/main/java'
.Ich hoffe, dies hilft jedem, der dieses Problem hat.
quelle
Ich hatte dieses Problem nach dem Upgrade von Version 18. Nach dem Upgrade hatte ich Folgendes: Project Build Target war 5.01, targetSDKVersion = 21
Aber: Build Tools waren immer noch von Android 4.3.1 (18). Ich bemerkte, dass die Apps, die ihre Aktivitäten von ActionBarActivity ableiteten, mit dem oben genannten Fehler abstürzten, die noch nicht ausgeführt wurden.
Die einfache Lösung bestand darin, die neuesten Android SDK Build Tools 21.1.2 anstelle nur der Android SDK Build Tools 18 zu verwenden, was irgendwie die Standardeinstellung zu sein scheint.
Der Schuldige scheint also die Appcompat-Bibliothek zu sein, die ich für die Abwärtskompatibilität der Actionbar verwende.
Und durch die Art und Weise : die appcompat Bibliothek ich zu setzen / fix hatte:
$SDKInstallDIR$\Android\android-sdk\extras\android\support\v7\appcompat\project.properties target=android-21
(die in einem anderen nützlichen Beitrag empfohlen wurde und die einen Wert von 19 in der Standardeinstellung))quelle
Ich hatte das gleiche Problem unter Windows. Ich hatte den Pfad zum Projekt in etwas umbenannt, das ein Leerzeichen enthielt.
Stellen Sie sicher, dass der Pfad zu Ihrem Projekt kein Leerzeichen enthält.
quelle
Hier erwähnte Lösung -> Multidex Issue-Lösung hat bei mir funktioniert. Im Folgenden muss Folgendes zum Anwendungskontext hinzugefügt werden:
quelle
Ich hatte dieses Problem, das aus verschiedenen Gründen
**Unable to instantiate activity ComponentInfo{...}: java.lang.ClassNotFoundException: Didn't find class "..." on path: DexPathList[[**
aufgetreten ist , aber ich sehe es in Ihrem Stacktrace " ". Ich habe einen Unterschied in meinem gefunden,.classpath
bevor es nicht mehr funktioniert.Ich habe die Zeile hinzugefügt:
Dies ist die endgültige Version:
Jetzt gehts! =)
quelle
Ich hatte genau das gleiche Problem. Wie von @weiweia vorgeschlagen, verschieben Sie den Code aus dem Java-Verzeichnis in src, was für mich funktioniert hat. Ich habe auch die Android-Abhängigkeiten aus Projekt -> Eigenschaften -> Java-Erstellungspfad -> Bestellen und Exportieren entfernt und sichergestellt, dass nur Bibliotheksprojekte in den Android-Bildschirm aufgenommen werden.
quelle
Ich hatte dieses Problem eine ganze Weile und wie alle anderen galten die obigen Antworten nicht für mein Projekt.
In meinem Projekt hatte ich ein Projekt mit meinem Projekt verknüpft und es löste jedes Mal ClassDefNotFoundError aus, wenn Code für das andere Projekt ausgeführt wurde.
Das war also meine Lösung. Ich ging zu den Projekteigenschaften meines Projekts und des Java-Erstellungspfads. Drückte die "Source" -Tab und "Link Source" vom src-Ordner des anderen Projekts zu meinem eigenen Projekt und benannte einen neuen Ordner "core-src".
Hoffe, diese Lösung hilft jemandem
quelle
Ich hatte das gleiche Problem. Ich benutze Xamarin.Android.
Das Problem in meinem Fall war, dass ich den versionCode und den versionName geändert habe.
Ich hatte kein Problem, als ich sie so einstellen ließ:
Das Problem trat auf, als ich es in dieses geändert habe (versionCode 2 und versionName 0.0.1):
Ich habe das Problem behoben, indem ich zu versionCode 2 und versionName 1.0.0.1 gewechselt habe:
Ich bin mir nicht sicher, warum dies ein Problem war. Vielleicht mag Android keinen niedrigeren Versionsnamen mit einem höheren Versionscode?
Ich habe Folgendes unter http://developer.android.com/guide/topics/manifest/manifest-element.html#vname gefunden
quelle
Nur für den Fall, dass jemand vor dem gleichen Problem steht wie ich und keine Antwort hier hilft.
Für mich war die Ursache, dass der Android Studio Refactor fehlerhaft ist. Ich habe eine innere Klasse außerhalb einer Klasse verschoben, die eine Ansicht war und daher auch eine XML-Datei hatte, in der der direkte Pfad festgelegt wurde. Dieser Weg wird vom Studio nicht umgestaltet! Und es wird kein Fehler ausgegeben.
Hoffe das hilft jedem. Prost.
quelle
In unserem Fall wollten wir die Vagrant-Version kompilieren und hatten den gleichen Fehler. Wir haben es durch
clean project
undrebuild project
im Build-Menü behobenquelle
Ich habe gerade das Gerät neu gestartet und die App ausgeführt. Es hat ohne Probleme funktioniert. Hoffe das hilft jemandem :)
quelle
Ich habe diesen Fehler in Android Studio gefunden, als ich versucht habe, in einem Gerät mit API 23 zu debuggen. Daher habe ich Android Studio überprüft und festgestellt, dass ich diese API 23-Version nicht installiert habe . Nach der Installation habe ich das Problem gelöst.
quelle
Ich hatte dieses Problem mehrmals und oft habe ich mit Abhängigkeiten offensichtlich nichts falsch gemacht.
Es ist immer eine gute Idee zu überprüfen, ob diese 'nicht gefundene' Klasse in der endgültigen apk vorhanden ist. Wenn es so ist, wie es in meinen Fällen passiert ist, ist das Problem normalerweise:
Es ist nicht so, dass eine bestimmte Klasse nicht gefunden wird, aber sie kann nicht geladen werden, da ihre Superklasse fehlt.
Überprüfen Sie, ob die von Ihnen erweiterte Klasse verfügbar ist, und versuchen Sie dann, Ihr Build-Skript oder Ihre Abhängigkeiten entsprechend zu korrigieren.
quelle