Wenn ich im Debug- Modus laufe, stürzt die App ab, aber wenn ich sie nur normal starte, funktioniert sie. Ich denke, das Problem tritt auf, wenn der Debugger angehängt ist.
Log:
A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x7f44a18400, GetDebugThread()=0x7f44a18400) Expected event thread
A/art: art/runtime/runtime.cc:422] Runtime aborting...
A/art: art/runtime/runtime.cc:422] Aborting thread:
A/art: art/runtime/runtime.cc:422] "JDWP" prio=5 tid=4 WaitingForDebuggerSend
A/art: art/runtime/runtime.cc:422] | group="" sCount=0 dsCount=0 obj=0x12c60280 self=0x7f44a18400
A/art: art/runtime/runtime.cc:422] | sysTid=24137 nice=0 cgrp=default sched=0/0 handle=0x7f4b904450
A/art: art/runtime/runtime.cc:422] | state=R schedstat=( 132066712 16401043 106 ) utm=9 stm=2 core=3 HZ=100
A/art: art/runtime/runtime.cc:422] | stack=0x7f4b80a000-0x7f4b80c000 stackSize=1005KB
A/art: art/runtime/runtime.cc:422] | held mutexes= "abort lock"
A/art: art/runtime/runtime.cc:422] native: #00 pc 000000000047e2cc /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+220)
A/art: art/runtime/runtime.cc:422] native: #01 pc 000000000047e2c8 /system/lib64/libart.so (_ZN3art15DumpNativeStackERNSt3__113basic_ostreamIcNS0_11char_traitsIcEEEEiP12BacktraceMapPKcPNS_9ArtMethodEPv+216)
A/art: art/runtime/runtime.cc:422] native: #02 pc 0000000000452434 /system/lib64/libart.so (_ZNK3art6Thread9DumpStackERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEbP12BacktraceMap+480)
A/art: art/runtime/runtime.cc:422] native: #03 pc 00000000004403ac /system/lib64/libart.so (_ZNK3art10AbortState10DumpThreadERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEEPNS_6ThreadE+56)
A/art: art/runtime/runtime.cc:422] native: #04 pc 0000000000440228 /system/lib64/libart.so (_ZNK3art10AbortState4DumpERNSt3__113basic_ostreamIcNS1_11char_traitsIcEEEE+668)
A/art: art/runtime/runtime.cc:422] native: #05 pc 0000000000433bfc /system/lib64/libart.so (_ZN3art7Runtime5AbortEPKc+148)
A/art: art/runtime/runtime.cc:422] native: #06 pc 00000000000e597c /system/lib64/libart.so (_ZN3art10LogMessageD2Ev+1592)
A/art: art/runtime/runtime.cc:422] native: #07 pc 00000000002f8458 /system/lib64/libart.so (_ZN3art4JDWP9JdwpState24AcquireJdwpTokenForEventEm+624)
A/art: art/runtime/runtime.cc:422] native: #08 pc 00000000002f7b1c /system/lib64/libart.so (_ZN3art4JDWP9JdwpState29SendRequestAndPossiblySuspendEPNS0_9ExpandBufENS0_17JdwpSuspendPolicyEm+248)
A/art: art/runtime/runtime.cc:422] native: #09 pc 00000000002fcb08 /system/lib64/libart.so (_ZN3art4JDWP9JdwpState16PostClassPrepareEPNS_6mirror5ClassE+1380)
A/art: art/runtime/runtime.cc:422] native: #10 pc 0000000000124a9c /system/lib64/libart.so (_ZN3art11ClassLinker11DefineClassEPNS_6ThreadEPKcmNS_6HandleINS_6mirror11ClassLoaderEEERKNS_7DexFileERKNS9_8ClassDefE+804)
A/art: art/runtime/runtime.cc:422] native: #11 pc 0000000000381d04 /system/lib64/libart.so (_ZN3artL25DexFile_defineClassNativeEP7_JNIEnvP7_jclassP8_jstringP8_jobjectS7_S7_+344)
A/art: art/runtime/runtime.cc:422] native: #12 pc 00000000001dd40c /system/framework/arm64/boot-core-libart.oat (???)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexFile.defineClassNative(Native method)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexFile.defineClass(DexFile.java:296)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexFile.loadClassBinaryName(DexFile.java:289)
A/art: art/runtime/runtime.cc:422] at dalvik.system.DexPathList.findClass(DexPathList.java:418)
A/art: art/runtime/runtime.cc:422] at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:54)
A/art: art/runtime/runtime.cc:422] at com.android.tools.fd.runtime.IncrementalClassLoader$DelegateClassLoader.findClass(IncrementalClassLoader.java:90)
A/art: art/runtime/runtime.cc:422] at com.android.tools.fd.runtime.IncrementalClassLoader.findClass(IncrementalClassLoader.java:62)
A/art: art/runtime/runtime.cc:422] at java.lang.ClassLoader.loadClass(ClassLoader.java:380)
A/art: art/runtime/runtime.cc:422] at java.lang.ClassLoader.loadClass(ClassLoader.java:367)
A/art: art/runtime/runtime.cc:422] at java.lang.ClassLoader.loadClass(ClassLoader.java:367)
A/art: art/runtime/runtime.cc:422] at java.lang.ClassLoader.loadClass(ClassLoader.java:312)
A/art: art/runtime/runtime.cc:422] Dumping all threads without appropriate locks held: thread list lock mutator lock
android
android-studio
debugging
android-debug
android-debugging
Maxim Rabtsun
quelle
quelle
Antworten:
Für mich ist es aufgetreten, wenn ich einen Haltepunkt in einer verschachtelten Funktion habe. In meinem Fall war es innerhalb
Runnable.run() {}
. Nicht sicher, ob es in anderen verschachtelten Funktionen passiert.Beispiel:
Wenn sich in einer Zeile der Funktion run () ein Haltepunkt befindet, stürzt dieser mit dem Fehler ab
A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread
.Dieser Fehler tritt beim ersten Auftreten der Klasse auf, NICHT beim Erreichen des Haltepunkts. So kam es mir vor, als ich in eine Zeile trat
new TouchEvent();
, bevor der Code des TouchEvent ausgeführt wurde (vor dem Konstruktor).Die Lösung besteht darin, den Haltepunkt zu entfernen (und an einer anderen Stelle zu platzieren).
Bearbeiten:
Ich habe vergessen zu erwähnen, dass es an API25 gebunden zu sein scheint, wurde aber auch für API26 und API27 gemeldet.
Bearbeiten:
Eine andere Lösung besteht darin, Instant Run zu deaktivieren. Bitte geben Sie @ toobsco42 die unten angegebene Gutschrift.
quelle
In meinem Fall musste ich Instant Run deaktivieren. Es scheint, dass Instant Run alle möglichen Nebenwirkungen hat und dies kann eine davon sein.
quelle
Das Problem hängt mit Android Version 7.x zusammen. Ich habe alle Haltepunkte in verschachtelten Funktionen entfernt und es hat funktioniert, auch mit Android Version 6.0 getestet und es funktioniert ohne Probleme.
Laut der Antwort des Google-Entwicklerteams wurde dies am 01.12.2016 behoben und wird in der nächsten Version angewendet.
quelle
Ich habe alle Haltepunkte entfernt und es hat funktioniert, getestet mit Emulator Pixel API 25.
So entfernen Sie alle Haltepunkte:
Gehen Sie zur Debugger-Option.
Klicken Sie auf das rote Symbol unten, um das Debuggen zu beenden.
Dort sehen Sie ein Fenster, in dem Sie alle Haltepunkte entfernen können.
Weitere Informationen finden Sie in diesem Beitrag: https://stackoverflow.com/a/42478994/5749462
quelle
Dies ist auf ein Problem mit Debugpunkten zurückzuführen. Entfernen Sie alle Debug-Punkte und dann sollte es funktionieren.
quelle
Es ist wirklich komisch, ich habe Instant Run deaktiviert und das Problem hat sich von selbst gelöst.
quelle
Mein Problem war, dass ich bei der Importanweisung einen Haltepunkt hatte
quelle
Verwenden Sie im Fenster 5: Debuggen die Schaltfläche "Haltepunkte anzeigen".
Deaktivieren Sie alle
quelle
Die einfachste Lösung besteht darin , ein anderes Gerät oder einen anderen Emulator zu finden (dank AVD Manager haben wir die Wahl), das ohne Problemumgehungen als Charme fungiert
quelle
Meine App stürzte auch nur im Debug-Modus ab. In der Version 3.5 wurde "Instant Run" durch "Apply Changes" ersetzt, sodass ich es nicht deaktivieren konnte. Meine Lösung bestand darin, die App normal zu starten (mit dem grünen Pfeil), direkt nach der Stelle zu navigieren, an der sie abgestürzt war, und dann den Debugger daran anzuhängen:
quelle
Das Entfernen des Haltepunkts aus Runable.run () hat das Problem für mich behoben. Ich konnte Haltepunkte zur Laufzeit in Runable.run () verwenden. Aber nicht zur Kompilierungszeit
quelle
Ich bin auf dasselbe Problem gestoßen, aber mein Haltepunkt war die erste Zeile in der verschachtelten Funktion. Wie kann ich sie an eine andere Stelle verschieben?
Ich habe eine temporäre private Methode erstellt und als erstes in der Funktion einen Aufruf dieser Methode vorgenommen. Anschließend habe ich den Haltepunkt in dieser Methode festgelegt.
Als ich mit dem Debuggen fertig war, entfernte ich die Methode und ihren Aufruf.
quelle
Es ist ein langer Weg, aber für mich, wenn ich eine Importanweisung habe, die nicht verwendet wird, und dieser Import Code enthält, der Netzwerkaufrufe ausführt, ist er für mich abgestürzt, aber beim Entfernen konnte der Code normal debuggen.
quelle
Absturz nur beim Starten mit dem Debugger. Neustart von Android Studio 2.3.2 ... stürzte immer wieder ab. Läuft gut im Run-Modus. Ich habe direkt nach onCreate eine Log.d () eingefügt ... und das Problem wurde behoben! Stelle dir das vor!
quelle
Alle Debugpunkte in meiner Anwendung löschen funktioniert einwandfrei. Sie können Strg + Umschalt + F6 verwenden, um alle Debugpunkte zu entfernen
quelle