ANR Input dispatching timed out
ANR Input dispatching timed out (Waiting to send non-key event because the touched window has not finished processing certain input events that were delivered to it over 500.0ms ago. Wait queue length: 60. Wait queue head age: 8503.2ms.)
Hi! I'm getting this strange ANR-report from several users. Unfortunately, I have very limited knowledge about ANR-reports, and I'm hoping that someone can help me to understand what the cause of this could be
"main" prio=5 tid=1 Suspended
| group="main" sCount=1 dsCount=0 obj=0x74a20f90 self=0x557fe6f9d0
| sysTid=23849 nice=1 cgrp=top_visible sched=0/0 handle=0x7faf4f5000
| state=S schedstat=( 79111961552 2206905376 39235 ) utm=7534 stm=377 core=7 HZ=100
| stack=0x7fdaaf0000-0x7fdaaf2000 stackSize=8MB
| held mutexes=
at android.os.MessageQueue.removeMessages(MessageQueue.java:682)
- locked <0x08f02647> (a android.os.MessageQueue)
at android.os.Handler.removeMessages(Handler.java:652)
at android.view.Choreographer.removeCallbacksInternal(Choreographer.java:418)
- locked <0x0bd41e74> (a java.lang.Object)
at android.view.Choreographer.removeCallbacks(Choreographer.java:406)
at android.view.View.removeCallbacks(View.java:13179)
at android.support.v4.widget.aa.a(unavailable:-1)
at android.support.v4.widget.DrawerLayout.a(unavailable:-1)
at android.support.v4.widget.DrawerLayout.onInterceptTouchEvent(unavailable:-1)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2108)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at com.android.internal.policy.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:2461)
at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1777)
at android.app.Activity.dispatchTouchEvent(Activity.java:2865)
at android.support.v7.view.n.dispatchTouchEvent(unavailable:-1)
at android.support.v7.view.n.dispatchTouchEvent(unavailable:-1)
at com.android.internal.policy.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:2422)
at android.view.View.dispatchPointerEvent(View.java:9610)
at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4436)
at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4302)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3836)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3889)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3855)
at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:3981)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3863)
at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4038)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3836)
at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:3889)
at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:3855)
at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:3863)
at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:3836)
at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6135)
at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6109)
at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6070)
at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6251)
at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:192)
at android.os.MessageQueue.nativePollOnce(Native method)
at android.os.MessageQueue.next(MessageQueue.java:330)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5546)
at java.lang.reflect.Method.invoke!(Native method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:794)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:684)
This happened to me when I had a loop and there was a condition for the loop to get incremented. I had not set the increment for when the condition was not met. Hence, the loop stalled. This resulted in the above error.
Without your code, I cannot help. But the above is a possible cause of your error.
Obviously, you anr log is not complete. It only shows main thread log, what else thread log.
In main thread, from this "main" prio=5 tid=1 Suspended
, we know the thread was suspended. Before that, it
- locked <0x08f02647> (a android.os.MessageQueue) at android.os.Handler.removeMessages(Handler.java:652) at android.view.Choreographer.removeCallbacksInternal(Choreographer.java:418)
- locked <0x0bd41e74> (a java.lang.Object)
You should search the log to check which thread waiting to lock the <0x08f02647> and <0x0bd41e74>, the you may find some clue.