当我在调试模式下运行时,应用程序崩溃了,但是当我正常运行时,它可以运行。 我认为连接调试器时会出现问题。
日志:
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
答案 0 :(得分:306)
对我来说,当我在嵌套函数中有一个断点时就会发生这种情况。就我而言,它位于Runnable.run(){}中。不确定它是否发生在其他嵌套函数中。
示例:
public class TouchEvent {
public boolean HandleEvent(MotionEvent Event) {
new Runnable() { @Override public void run() {
int i=5;
i++;
}};
}
}
如果run()func中的任何一行都有断点,它会因错误A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread
而崩溃。
第一次遇到类时会发生此错误,而不是在遇到断点时。所以当我在任何TouchEvent的代码运行之前(在构造函数之前)进入具有new TouchEvent();
的行时,就会发生这种情况。
解决方案是删除断点(并将其放在别处)。
修改强>
忘了提,它似乎与API25有关,但也有针对API26和API27的报道。
修改强>
另一种解决方案是禁用即时运行,但请为以下内容提供toobsco42信用。
答案 1 :(得分:180)
在我的情况下,我必须禁用Instant Run。似乎Instant Run有各种各样的副作用,这可能就是其中之一。
答案 2 :(得分:45)
问题与Android版本7.x有关,我删除了嵌套函数中的所有断点,并且它也可以运行,也可以使用Android版本6.0进行测试,并且它可以正常运行。
根据谷歌开发团队的回复,它已在2016年12月1日修复,并将在下一版本中应用。
答案 3 :(得分:21)
我删除了所有断点并且工作正常,使用Emulator Pixel API 25进行测试。
删除所有断点:
转到调试器选项。
点击下面的红色图标停止调试。
您将看到一个窗口,您可以删除所有断点。
在这篇文章中查看更多内容:https://stackoverflow.com/a/42478994/5749462
答案 4 :(得分:15)
这是由于调试点存在一些问题。删除所有调试点,然后它应该工作。
答案 5 :(得分:8)
它非常奇怪,我禁用了Instant Run,问题解决了。
答案 6 :(得分:4)
我的问题是我在导入语句中有一个断点
答案 7 :(得分:1)
最简单的解决方案是尝试找到另一台设备或模拟器(感谢AVD Manager我们可以选择),它可以作为魅力而无需解决方法
答案 8 :(得分:1)
答案 9 :(得分:0)
从Runable.run()中删除断点为我解决了这个问题。我能够在Runable.run()内的运行时使用断点。但不是在编译时
答案 10 :(得分:0)
进入同样的问题但是我的断点是嵌套函数的第一行,那么如何将它移到其他地方?
我创建了一个临时的私有方法,并在函数中首先调用该方法,然后在该方法中设置断点。
当我完成调试后,我删除了方法及其调用。
答案 11 :(得分:0)
这是一个很长的镜头,但对我来说,当我有一个没有使用的import语句,并且导入的代码运行网络调用时,它崩溃了但是在删除它时,代码能够调试一般。
答案 12 :(得分:0)
仅在使用调试器启动时才开始崩溃。重启的Android Studio 2.3.2 ......一直在崩溃。在运行模式下运行正常。我在onCreate之后放入了一个Log.d(),它解决了问题!去图!
答案 13 :(得分:0)
删除我的应用程序上的所有调试点都可以正常工作 您可以使用ctrl + shift + f6删除所有调试点
答案 14 :(得分:0)