For me, it occurred when I have a breakpoint in a nested function. In my case, it was within Runnable.run() {}
. Not sure if it happens in other nested functions.
Example:
public class TouchEvent {
public boolean HandleEvent(MotionEvent Event) {
new Runnable() { @Override public void run() {
int i=5;
i++;
}};
}
}
If there is a breakpoint on any line inside the run() func, it crashes with the error A/art: art/runtime/jdwp/jdwp_event.cc:661] Check failed: Thread::Current() != GetDebugThread() (Thread::Current()=0x########, GetDebugThread()=0x########) Expected event thread
.
This error occurs the first time the class is encountered, NOT when the breakpoint is hit. So it occurred for me when I stepped into a line that had new TouchEvent();
, before any of the TouchEvent's code was run (before the constructor).
The solution is to remove the break point (and put it elsewhere).
Edit:
Forgot to mention, it seems to be tied to API25, but has been reported for API26 and API27 too.
Edit:
Another solution is to disabled Instant Run, but please give @toobsco42 credit for that below.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…