Android Webb - 输入调度超时

时间:2018-05-20 00:45:47

标签: android web-applications

我的WebApp已于8.5.2018开始崩溃。 从字面上打开,显示它在主屏幕上形成的最后一个数据,并在一秒钟内崩溃。

我没有更改代码等。

有什么帮助,卸载并重新安装Google Play服务。

这是来自Google PlayStore Dev-Backend的内容。

输入调度超时(等待发送非键事件,因为触摸的窗口尚未完成处理500.0ms前传递给它的某些输入事件。等待队列长度:21。等待队列头部年龄:5510.3ms。 )

    "main" prio=5 tid=1 Native
      | group="main" sCount=1 dsCount=0 obj=0x7536cfb8 self=0x559750ad80
      | sysTid=22359 nice=-4 cgrp=default sched=0/0 handle=0x7f88470fe8
      | state=S schedstat=( 1902426213 348727927 4903 ) utm=134 stm=56 core=5 HZ=100
      | stack=0x7fe4f4f000-0x7fe4f51000 stackSize=8MB
      | held mutexes=
      #00  pc 00000000000199c0  /system/lib64/libc.so (syscall+28)
      #01  pc 0000000000067474  /system/lib64/libc.so (_ZL33__pthread_cond_timedwait_relativeP23pthread_cond_internal_tP15pthread_mutex_tPK8timespec+96)
      #02  pc 0000000000026d68  /system/lib64/libhwui.so (???)
      #03  pc 0000000000bee3b4  /data/dalvik-cache/arm64/system@framework@boot.oat (Java_android_view_ThreadedRenderer_nSyncAndDrawFrame__J_3JI+168)
      at android.view.ThreadedRenderer.nSyncAndDrawFrame (Native method)
      at android.view.ThreadedRenderer.draw (ThreadedRenderer.java:342)
      at android.view.ViewRootImpl.draw (ViewRootImpl.java:2642)
      at android.view.ViewRootImpl.performDraw (ViewRootImpl.java:2461)
      at android.view.ViewRootImpl.performTraversals (ViewRootImpl.java:2094)
      at android.view.ViewRootImpl.doTraversal (ViewRootImpl.java:1134)
      at android.view.ViewRootImpl$TraversalRunnable.run (ViewRootImpl.java:6045)
      at android.view.Choreographer$CallbackRecord.run (Choreographer.java:860)
      at android.view.Choreographer.doCallbacks (Choreographer.java:672)
      at android.view.Choreographer.doFrame (Choreographer.java:608)
      at android.view.Choreographer$FrameDisplayEventReceiver.run (Choreographer.java:846)
      at android.os.Handler.handleCallback (Handler.java:739)
      at android.os.Handler.dispatchMessage (Handler.java:95)
      at android.os.Looper.loop (Looper.java:148)
      at android.app.ActivityThread.main (ActivityThread.java:5441)
      at java.lang.reflect.Method.invoke! (Native method)
      at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run (ZygoteInit.java:738)
      at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:628)

1 个答案:

答案 0 :(得分:0)

由于导致主线程挂起的原因,听起来像“应用程序无响应”错误(ANR)。即使没有代码更改,并发问题也会出现意外情况。根据{{​​3}} ANR在以下情况下触发:

  

... app尚未回应   到输入事件或BroadcastReceiver(例如按键或屏幕   触摸事件)在5秒内。

似乎与您的错误消息相符:

  

等待队列头龄:5510.3ms

docs可以帮助诊断以下任何原因:

  • 主线程上的慢代码
  • 主线程上的IO
  • 锁定争用
  • 死锁
  • 慢速广播接收器

我的猜测是你在主线程上发出一个HTTP请求,这个服务自8.5.2018以来已经放慢了速度,在这种情况下,通过Traceview将这个缓慢的IO请求卸载到工作线程可能有所帮助。