Ich habe versucht, einen Beispielcode auszuführen. Beim Starten der Anwendung im Android 1.5-Emulator sind folgende Fehler aufgetreten. Hat jemand einen Hinweis?
FEHLER von LogCat:
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): FATAL EXCEPTION: main
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.s.android.test/com.s.android.test.MainActivity}: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1544)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1638)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.access$1500(ActivityThread.java:117)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:928)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.os.Handler.dispatchMessage(Handler.java:99)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.os.Looper.loop(Looper.java:123)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.main(ActivityThread.java:3647)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at java.lang.reflect.Method.invokeNative(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at java.lang.reflect.Method.invoke(Method.java:507)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at dalvik.system.NativeStart.main(Native Method)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): Caused by: java.lang.ClassNotFoundException: com.s.android.test.MainActivity in loader dalvik.system.PathClassLoader[/data/app/com.s.android.test-2.apk]
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at dalvik.system.PathClassLoader.findClass(PathClassLoader.java:240)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at java.lang.ClassLoader.loadClass(ClassLoader.java:551)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at java.lang.ClassLoader.loadClass(ClassLoader.java:511)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.Instrumentation.newActivity(Instrumentation.java:1021)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1536)
01-13 02:28:08.392: ERROR/AndroidRuntime(2888): ... 11 more
01-13 02:28:08.407: WARN/ActivityManager(112): Force finishing activity com.s.android.test/.MainActivity
Bearbeiten Dieser Fehler tritt bei den meisten Anfängern auf. Sie müssen alle Ihre Aktivitäten zur Manifest-Datei hinzufügen.
android
fatal-error
rahul
quelle
quelle
Antworten:
Es ist ein Problem Ihrer Absicht.
Bitte fügen Sie Ihre
Activity
in IhreAndroidManifest.xml
.Wenn Sie eine neue Aktivität erstellen möchten, sollten Sie diese in Ihrem registrieren
AndroidManifest.xml
.quelle
abstract
(ich habe diesen Fehler beim Refactoring gemacht und die Fehlermeldung hilft nicht viel).Möglicherweise versuchen Sie, die Ansicht zu finden, vor
onCreate()
der sie falsch ist.quelle
Es gibt eine andere Möglichkeit, eine java.lang.RuntimeException abzurufen: Die ComponentInfo- Ausnahme für Aktivitäten kann nicht instanziiert werden. Dies ist die Aktivität, die Sie starten möchten . Sie ist abstrakt . Ich habe diesen dummen Fehler einmal gemacht und es ist sehr leicht zu übersehen.
quelle
In meinem Fall habe ich vergessen, die Google Maps-Bibliothek hinzuzufügen
Stellen Sie außerdem sicher, dass Sie den vorhergehenden Punkt vor dem Aktivitätspfad nicht verpassen
quelle
Dies geschieht auch aufgrund dieses Problems. Ich deaktivierte die Gläser, die in die apk exportiert werden mussten, und das gleiche passierte. Bitte kreuzen Sie die Gläser an, die Ihre App ausführen muss.
quelle
Ich bin auch auf dieses Problem gestoßen, aber auf etwas andere Weise. Hier war mein Szenario:
App Detail:
<uses-library android:name="com.google.android.maps" />
in den Manifesten sowohl des Bibliotheksprojekts als auch meines Hauptprojekts (dies ist in der Bibliothek möglicherweise nicht erforderlich?)Ich bin jedoch immer noch auf den im ursprünglichen Beitrag beschriebenen Fehler gestoßen und konnte ihn nicht zum Verschwinden bringen. Das Problem war jedoch in einer Hinsicht etwas anders:
Wie ich es behoben habe:
Dieser Schritt allein hat das Problem nicht behoben
Nachdem das JAR zum Erstellungspfad hinzugefügt wurde, musste ich die Reihenfolge auf der Registerkarte Java-Erstellungspfad> Reihenfolge und Export ändern. Ich habe die JAR auf das erste Element in der Liste gesetzt (es war das letzte nach den Elementen / src und / gen) ).
Anschließend habe ich die App neu erstellt und auf meinem Gerät erneut bereitgestellt - bei einer Neuinstallation funktionierte sie wie erwartet. Um sicherzugehen, habe ich es 2-3 Mal erneut deinstalliert und neu installiert - es hat immer noch wie erwartet funktioniert.
Dies mag ein totaler Anfängerfehler sein, aber ich habe eine ganze Weile damit verbracht, Beiträge und meinen Code zu durchsuchen, um es herauszufinden. Hoffentlich kann es jemand anderem helfen. Möglicherweise werden nicht alle Situationen behoben, aber in diesem speziellen Fall war dies die Lösung für mein Problem.
quelle
Dies ist möglicherweise nicht relevant für die eigentliche Frage, aber in meinem Fall habe ich versucht, Kotlin zu implementieren, und habe es weggelassen
apply plugin: 'kotlin-android'
. Der Fehler ist aufgetreten, weil die MainActivity in .kt-Datei nicht erkannt werden konnte.Hoffe es hilft jemandem.
quelle
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION
FügenDieser Fehler kann auch das ultimative Zeichen für einen dummen Fehler sein (wie wenn ich - ich meine, Husten, wie wenn ein Freund von mir, der mir seinen Code einmal gezeigt hat), bei dem er versucht, Code außerhalb einer Methode wie dieser auszuführen ::
lieber als das:
quelle
Ich habe dieses Problem durch Löschen des
Bin
und beseitigtGen
Ordner aus dem Projekt (der automatisch zurückkommt, wenn das Projekt erstellt wird) und das Projekt dann über -> Menü -> Projekt -> Bereinigen bereinigt habe.Vielen Dank.
quelle
In meinem Fall habe ich das nicht eingestellt
setContentView(R.layout.main);
Wenn Sie eine neue Klasse erstellen, beschlagen Sie diese nicht mit der
onCreate(Bundle savedInstanceState)
Methode on .Ich habe diesen dummen Fehler mehrmals gemacht.
quelle
Bereinigen Sie einfach Ihr Arbeitsprojekt oder starten Sie Eclipse neu. Führen Sie dann Ihr Projekt aus. es wird klappen.
quelle
Für mich war meine Paketzeichenfolge
AndroidManifest.xml
falsch (aus einem Tutorial kopiert). Stellen Sie sicher, dass die Paketzeichenfolge in dieser Datei mit Ihrer Hauptaktivität übereinstimmt, zEine einfache Möglichkeit, dies zu tun, besteht darin, die Datei AndroidManifest.xml auf der Registerkarte "Manifest" zu öffnen und in das Textfeld neben "Paket" einzugeben oder die Schaltfläche "Durchsuchen" zu verwenden.
Außerdem war die Paketzeichenfolge für meine Aktivität falsch, z
Ich habe (dumm) Wochen später den gleichen Fehler erhalten, als ich meinen Paketnamen umbenannt habe. Wenn Sie dies tun, stellen Sie sicher, dass Sie auch die
AndroidManifest.xml
Datei aktualisieren .quelle
Ok, ich bin ziemlich erfahren auf dem iPhone, aber neu bei Android. Ich habe dieses Problem bekommen, als ich hatte:
diese Codezeile oben:
Vielleicht ist mir der Schlaf entzogen: P.
quelle
Ich bin kürzlich auf eine Neuinstallation von Eclipse gestoßen. Es stellte sich heraus, dass meine Compiler-Konformitätsstufe auf Java 1.7 eingestellt war und das Projekt 1.6 erforderlich war.
In Eclipse: Projekt -> Eigenschaften -> Java Compiler -> JDK-Konformität
quelle
Dieses Problem wurde behoben, indem die Eigenschaft "Startmodus" der Aktivität festgelegt wurde.
quelle
Ein weiterer Grund für dieses Problem kann eine fehlende Bibliothek sein.
Gehen Sie zu Eigenschaften -> Android und überprüfen Sie, ob Sie die Bibliotheken korrekt hinzugefügt haben
quelle
Ich hatte das gleiche Problem, aber ich hatte meine Aktivität in der Manifest-Datei mit dem richtigen Namen deklariert.
Mein Problem war, dass ich keine Bibliotheken von Drittanbietern in einen "libs" -Ordner importieren musste und sie in meinem Projekt referenzieren musste (Rechtsklick, Eigenschaften, Java-Erstellungspfad, Bibliotheken, Jar hinzufügen ...).
quelle
Dies kann passieren, wenn sich Ihre Aktivitätsklasse in einem Standardpaket befindet. Ich habe es behoben, indem ich die Aktivitätsklasse in ein neues Paket verschoben habe. und Ändern der manifest.xml
Vor
nach dem
quelle
In meinem Fall habe ich versucht, die Komponenten (UI) bereits vor dem zu initialisieren
onCreate
für die Aktivität aufgerufen wird.Stellen Sie sicher, dass Ihre UI-Komponenten in der folgenden
onCreate
Methode initialisiert / verknüpft sindsetContentView
NB: Dies ist mein erster Fehler beim Erlernen der Android-Programmierung.
quelle
Für mich war es anders als alles oben Genannte,
Die Aktivität wurde als abstrakt deklariert. Deshalb wird der Fehler angegeben. Sobald es entfernt wurde, funktionierte es.
Vorhin
Nach dem Entfernen
quelle
Dies passiert mir ziemlich häufig, wenn ich das NDK verwende. Ich habe festgestellt, dass ich in Eclipse jedes Mal ein "Clean" durchführen muss, wenn ich ein "Clean" mache
ndk-build
. Hoffe es hilft jedem :)quelle
Dieser Fehler tritt auch auf, wenn Sie einen Nichtstil verwenden, ihm
ActionBarActivity
jedoch zugewiesen habenAppCompat
.Um dies zu beheben, setzen Sie einfach Ihren übergeordneten App-Stil auf
Theme.AppCompat
einen solchen:quelle
Klicken Sie mit der rechten Maustaste auf Projekt> Eigenschaften> Android> und versuchen Sie es mit einer anderen Version des Android, die ich früher mit Android 4.4 gemacht habe. Dann habe ich zu Android 4.3 gewechselt und es hat funktioniert!
quelle
Ich hatte das gleiche Problem (Aktivität kann nicht instanziiert werden):
ERSTER Grund:
Ich habe zugegriffen
Vor
Öffnen Sie also zuerst die Kamera und greifen Sie dann auf die Parameter zu.
ZWEITER Grund: Deklarieren Sie Ihre Aktivität in der Manifestdatei
DRITTER Grund: Deklarieren Sie die Kameraberechtigung in Ihrer Manifestdatei.
Hoffe das hilft
quelle
In meinem Fall habe ich versucht, das Facebook SDK einzubetten, und ich hatte die falsche Anwendungs-ID . somit tauchte der Fehler auf. In Ihrer Manifestdatei sollten Sie die richtigen Metadaten haben:
quelle
Wenn Sie Android Studio 2.3.3 und Android Studio 3.0.0 installiert haben, führt der Wechsel zwischen den beiden Entwicklungsprogrammen zu diesem Fehler. Dies liegt daran, dass es Situationen gibt, in denen in einem Programm unterstützte Klassen vom anderen nicht unterstützt werden und umgekehrt. Es ist wichtig, die Konsistenz zu gewährleisten, in welcher Version von Android Studio ein Projekt entwickelt wird.
quelle
Wie
djjeck
in einem Kommentar in dieser Antwort vorgeschlagen, habe ich es versäumt zu setzenpublic
Modifikator für meine Klasse nicht angegeben.Es sollte sein
Es kann einigen wie mir helfen.
quelle
Ich habe alle oben genannten Lösungen ausprobiert, aber nichts funktioniert für mich. nachdem ich statt nur
extend
Aktivität hinzugefügt habeAppCompatActivity
und gut funktioniert.gebraucht
anstatt
Ich weiß nicht, was das eigentliche Problem war.
quelle
Dies passierte mir, als ich versuchte, eine
Activity
Version 2.2 auszuführen , die Importe aus Honeycomb verwendete, die in älteren Android-Versionen nicht verfügbar und auch nicht im v4-Support Package enthalten waren.quelle
Ihre neue Aktivität hinzufügen
AndroidManifest.xml
wie".NewActivity"
quelle