ANR keyDispatchingTimedOut错误 [英] ANR keyDispatchingTimedOut error

查看:106
本文介绍了ANR keyDispatchingTimedOut错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

即时得到这股力量下误差在我的应用程序,当我尝试解析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线程执行)。

<一个href="http://developer.android.com/guide/practices/design/responsiveness.html">http://developer.android.com/guide/practices/design/responsiveness.html

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

<一个href="http://android-developers.blogspot.co.uk/2009/05/painless-threading.html">http://android-developers.blogspot.co.uk/2009/05/painless-threading.html

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

<一个href="http://developer.android.com/resources/articles/timed-ui-updates.html">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

这篇关于ANR keyDispatchingTimedOut错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆