it-swarm.com.de

Die Android-App stürzt beim Start im Debug-Modus ab

Wenn ich im debug - Modus laufe, stürzt die App ab, aber wenn ich es gerade laufe, funktioniert es ... Ich glaube, 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
254
Maxim Rabtsun

Bei mir trat es auf, wenn ich einen Haltepunkt in einer verschachtelten Funktion habe. In meinem Fall war es innerhalb von Runnable.run () {}. Nicht sicher, ob dies bei anderen verschachtelten Funktionen der Fall ist.

Beispiel:

public class TouchEvent {
    public boolean HandleEvent(MotionEvent Event) {
        new Runnable() { @Override public void run() {
            int i=5;
            i++;
        }};
    }
}

Wenn in einer Zeile innerhalb der run () - Funktion ein Haltepunkt vorhanden ist, stürzt dieser mit dem Fehler A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread ab.

Dieser Fehler tritt beim ersten Auftreten der Klasse auf, NICHT beim Erreichen des Haltepunkts. So kam es mir vor, als ich in eine Zeile mit new TouchEvent(); trat, bevor der Code von TouchEvent ausgeführt wurde (vor dem Konstruktor).

Die Lösung besteht darin, den Haltepunkt zu entfernen (und ihn an anderer Stelle zu platzieren).

Bearbeiten:

Vergessen zu erwähnen, es scheint an API25 gebunden zu sein, wurde aber auch für API26 und API27 gemeldet.

Bearbeiten:

Eine andere Lösung ist die Deaktivierung von Instant Run , aber bitte geben Sie toobsco42 Kredit dafür an.

297
Dakusan

In meinem Fall musste ich Instant Run deaktivieren. Es scheint, als hätte Instant Run alle möglichen Nebenwirkungen, und dies kann einer davon sein.

174
toobsco42

Das Problem hängt mit der Android-Version 7.x zusammen, ich habe alle Haltepunkte in verschachtelten Funktionen entfernt und es funktionierte, wurde auch mit der Android-Version 6.0 getestet und funktioniert problemlos.

Laut der Antwort des Google Entwickler-Teams wurde es am 01.12.2016 behoben und wird in der nächsten Version angewendet.

44
hcknl

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.

  • Sie sehen ein Fenster, in dem Sie alle Haltepunkte entfernen können.

Mehr dazu in diesem Beitrag: https://stackoverflow.com/a/42478994/5749462

21

Dies liegt an einem Problem mit Debug-Punkten. Entfernen Sie alle Debug-Punkte und dann sollte es funktionieren. 

15
flame3

Es ist wirklich komisch, ich habe Instant Run deaktiviert und das Problem wurde von selbst gelöst.

7
mbpakalin

Mein Problem war, dass ich beim Import Statement einen Haltepunkt hatte

4
egorikem

 enter image description here

Im Fenster 5: Debuggen Sie die Schaltfläche "Haltepunkte anzeigen".

 enter image description here

UnSelectAll von ihnen 

 enter image description here

1
Nicoolasens

Die einfachste Lösung ist der Versuch, ein anderes Gerät oder einen anderen Emulator zu finden (dank AVD Manager haben wir eine Wahl), die als Charm ohne Problemumgehung funktioniert

1
yoAlex5

Das Entfernen des Haltepunkts aus Runnable.run () löste das Problem für mich. Ich konnte Haltepunkte zur Laufzeit in Runnable.run () verwenden. Aber nicht zur Kompilierzeit

0
Ankush

Absturz nur beim Start des Debuggers. Neustart von Android Studio 2.3.2 ... stürzte ständig 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!

0
IrvineCAGuy

Ich bin in dieselbe Ausgabe geraten, aber mein Haltepunkt war die erste Zeile in der verschachtelten Funktion.

Ich habe eine temporäre private Methode erstellt und diese Methode zuerst aufgerufen und dann den Haltepunkt in dieser Methode festgelegt.

Als ich mit dem Debuggen fertig war, entfernte ich die Methode und ihren Aufruf.

0
roobyroo

es ist eine lange Zeit, aber wenn ich eine Import-Anweisung habe, die nicht verwendet wird, und dieser Import Code hat, der Netzwerkaufrufe ausführt, stürzte er für mich ab. Beim Entfernen konnte der Code normal debuggen. 

0
reidisaki