ANR keyDispatchingTimedOut错误错误、ANR、keyDispatchingTimedOut

2023-09-12 21:41:14 作者:像风没有归期

即时得到这股力量下误差在我的应用程序,当我尝试解析RSS与DOM.it并不总是压低问题,但是......这是logcat的:

  ** ANR keyDispatchingTimedOut **

DALVIK主题:
主PRIO = 5 TID = 1的原生
  |组=主SCOUNT = 1 dsCount = 0 S = N的obj = 0x40025b50自我= 0xcdb8
  | sysTid = 2504漂亮= 0章附表= 0/0 CGRP = bg_non_interactive处理= -1345017804
  | schedstat =(573577878 521301271 1476)
  在org.apache.harmony.luni.platform.OSNetworkSystem.readSocketImpl(本机方法)
  在org.apache.harmony.luni.platform.OSNetworkSystem.read(OSNetworkSystem.java:358)
  在org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:561)
  在org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:88)
  在org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$ChunkedInputStream.read(HttpURLConnectionImpl.java:458)
  在java.io.InputStreamReader.read(InputStreamReader.java:275)
  在org.kxml2.io.KXmlParser.peek(KXmlParser.java:931)
  在org.kxml2.io.KXmlParser.pushText(KXmlParser.java:881)
  在org.kxml2.io.KXmlParser.nextImpl(KXmlParser.java:354)
  在org.kxml2.io.KXmlParser.nextToken(KXmlParser.java:1406)
  在org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:369)
  在org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  在org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  在org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  在org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  在org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:135)
  在javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:110)
  在kostas.menu.olympiakos.DomFeedParser.parse(DomFeedParser.java:26)
  在kostas.menu.olympiakos.nea.loadFeed(nea.java:51)
  在kostas.menu.olympiakos.nea.onCreate(nea.java:38)
  在android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1066)
  在android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2799)
  在android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2866)
  在android.app.ActivityThread.access $ 2300(ActivityThread.java:140)
  在android.app.ActivityThread $ H.handleMessage(ActivityThread.java:2181)
  在android.os.Handler.dispatchMessage(Handler.java:99)
  在android.os.Looper.loop(Looper.java:143)
  在android.app.ActivityThread.main(ActivityThread.java:5097)
  在java.lang.reflect.Method.invokeNative(本机方法)
  在java.lang.reflect.Method.invoke(Method.java:521)
  在com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:868)
  在com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
  在dalvik.system.NativeStart.main(本机方法)

捆扎线2PRIO = 5 TID = 6 NATIVE
  |组=主SCOUNT = 1 dsCount = 0 S = N的obj = 0x46eea810自我= 0x135a00
  | sysTid = 2509漂亮= 0 sched的= 0/0 CGRP = bg_non_interactive手柄= 1213600
  | schedstat =(10253904 21514895 127)
  在dalvik.system.NativeStart.run(本机方法)

捆扎线#1PRIO = 5 TID = 5 NATIVE
  |组=主SCOUNT = 1 dsCount = 0 S = N的obj = 0x46eea748自我= 0x12cab0
  | sysTid = 2508漂亮= 0 sched的= 0/0 CGRP = bg_non_interactive手柄= 1301736
  | schedstat =(12603756 119659428 129)
  在dalvik.system.NativeStart.run(本机方法)

编译器守护PRIO = 5 TID = 4 VMWAIT
  |组=系统SCOUNT = 1 dsCount = 0 S = N的obj = 0x46ee32a8自我= 0x127bc8
  | sysTid = 2507漂亮= 0 sched的= 0/0 CGRP = bg_non_interactive手柄= 1300256
  | schedstat =(197021496 268585180 1155)
  在dalvik.system.NativeStart.run(本机方法)

信号守望者守护PRIO = 5 TID = 3 RUNNABLE
  |组=系统SCOUNT = 0 dsCount = 0 S = N的obj = 0x46ee31e8自我= 0xa8140
  | sysTid = 2506漂亮= 0 sched的= 0/0 CGRP = bg_non_interactive手柄= 1299816
  | schedstat =(915528 5706786 7)
  在dalvik.system.NativeStart.run(本机方法)

HeapWorker守护PRIO = 5 TID = 2 VMWAIT
  |组=系统SCOUNT = 1 dsCount = 0 S = N的obj = 0x45947800自我= 0x1224b8
  | sysTid = 2505漂亮= 0 sched的= 0/0 CGRP = bg_non_interactive手柄= 1212984
  | schedstat =(27404784 3082276 24)
  在dalvik.system.NativeStart.run(本机方法)
 

解决方案

ANR错误

活动没有响应。

您的活动走上长说的是Android OS嘿,我还活着! (这是在UI线程执行)。

http://developer.android.com/guide/practices/design/responsiveness.html

基本上,如果你做的UI线程做一些复杂的任务,它太忙着做你的任务是告诉大家,它仍然是'活'的OS。

http://android-developers.blogspot.co.uk/2009/05/painless-threading.html

鸿蒙开源第三方组件 ANR异常监测组件 ANR WatchDog ohos

您应该将你的XML解析code到另一个线程,然后使用一个回调来告诉UI线程你已经完成,并做一些与结果。

http://developer.android.com/resources/articles/timed-ui-updates.html

i m getting this force down error in my app,when i m trying to parse RSS with DOM.it's not always the force down problem however...this is the logcat:

**ANR keyDispatchingTimedOut**

DALVIK THREADS:
"main" prio=5 tid=1 NATIVE
  | group="main" sCount=1 dsCount=0 s=N obj=0x40025b50 self=0xcdb8
  | sysTid=2504 nice=0 sched=0/0 cgrp=bg_non_interactive handle=-1345017804
  | schedstat=( 573577878 521301271 1476 )
  at org.apache.harmony.luni.platform.OSNetworkSystem.readSocketImpl(Native Method)
  at org.apache.harmony.luni.platform.OSNetworkSystem.read(OSNetworkSystem.java:358)
  at org.apache.harmony.luni.net.PlainSocketImpl.read(PlainSocketImpl.java:561)
  at org.apache.harmony.luni.net.SocketInputStream.read(SocketInputStream.java:88)
  at org.apache.harmony.luni.internal.net.www.protocol.http.HttpURLConnectionImpl$ChunkedInputStream.read(HttpURLConnectionImpl.java:458)
  at java.io.InputStreamReader.read(InputStreamReader.java:275)
  at org.kxml2.io.KXmlParser.peek(KXmlParser.java:931)
  at org.kxml2.io.KXmlParser.pushText(KXmlParser.java:881)
  at org.kxml2.io.KXmlParser.nextImpl(KXmlParser.java:354)
  at org.kxml2.io.KXmlParser.nextToken(KXmlParser.java:1406)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:369)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:362)
  at org.apache.harmony.xml.parsers.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:135)
  at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:110)
  at kostas.menu.olympiakos.DomFeedParser.parse(DomFeedParser.java:26)
  at kostas.menu.olympiakos.nea.loadFeed(nea.java:51)
  at kostas.menu.olympiakos.nea.onCreate(nea.java:38)
  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1066)
  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2799)
  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2866)
  at android.app.ActivityThread.access$2300(ActivityThread.java:140)
  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2181)
  at android.os.Handler.dispatchMessage(Handler.java:99)
  at android.os.Looper.loop(Looper.java:143)
  at android.app.ActivityThread.main(ActivityThread.java:5097)
  at java.lang.reflect.Method.invokeNative(Native Method)
  at java.lang.reflect.Method.invoke(Method.java:521)
  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
  at dalvik.system.NativeStart.main(Native Method)

"Binder Thread #2" prio=5 tid=6 NATIVE
  | group="main" sCount=1 dsCount=0 s=N obj=0x46eea810 self=0x135a00
  | sysTid=2509 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1213600
  | schedstat=( 10253904 21514895 127 )
  at dalvik.system.NativeStart.run(Native Method)

"Binder Thread #1" prio=5 tid=5 NATIVE
  | group="main" sCount=1 dsCount=0 s=N obj=0x46eea748 self=0x12cab0
  | sysTid=2508 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1301736
  | schedstat=( 12603756 119659428 129 )
  at dalvik.system.NativeStart.run(Native Method)

"Compiler" daemon prio=5 tid=4 VMWAIT
  | group="system" sCount=1 dsCount=0 s=N obj=0x46ee32a8 self=0x127bc8
  | sysTid=2507 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1300256
  | schedstat=( 197021496 268585180 1155 )
  at dalvik.system.NativeStart.run(Native Method)

"Signal Catcher" daemon prio=5 tid=3 RUNNABLE
  | group="system" sCount=0 dsCount=0 s=N obj=0x46ee31e8 self=0xa8140
  | sysTid=2506 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1299816
  | schedstat=( 915528 5706786 7 )
  at dalvik.system.NativeStart.run(Native Method)

"HeapWorker" daemon prio=5 tid=2 VMWAIT
  | group="system" sCount=1 dsCount=0 s=N obj=0x45947800 self=0x1224b8
  | sysTid=2505 nice=0 sched=0/0 cgrp=bg_non_interactive handle=1212984
  | schedstat=( 27404784 3082276 24 )
  at dalvik.system.NativeStart.run(Native Method)

解决方案

ANR Error

Activity Not Responding.

Your activity took to long to say to the Android OS 'hey i'm still alive'! (This is what the UI thread does).

http://developer.android.com/guide/practices/design/responsiveness.html

Basically if you make the UI thread do some complex task it's too busy doing your task to tell the OS that it is still 'alive'.

http://android-developers.blogspot.co.uk/2009/05/painless-threading.html

You should move your XML Parsing code to another thread, then use a callback to tell the UI thread you have finished and to do something with the result.

http://developer.android.com/resources/articles/timed-ui-updates.html