web-dev-qa-db-ja.com

ANR keyDispatchingTimedOutエラー

私は私のアプリでこのフォースダウンエラーを取得しています.DOMでRSSを解析しようとすると、常にフォースダウンの問題とは限りません...これは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)
25
menu_on_top

ANRエラー

アクティビティが応答しません。

Android OS 'hey i'm still alive' !!.

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

基本的に、UIスレッドにいくつかの複雑なタスクを実行させると、タスクの実行がビジーになり、OSにまだ「生きている」ことを通知できません。

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

XML解析コードを別のスレッドに移動し、コールバックを使用して、UIスレッドに完了したことを通知し、その結果に対して何かを行う必要があります。

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

47
Blundell

Logcatが有用な情報を出力しない場合は、/ data/anr/traces.txtからtraces.txtをプルしてみてください

adb pull /data/anr/traces.txt。

aNR例外が発生した場所に関する詳細情報を提供する場合があるため

14
Maragues

UIスレッドでブロッキング操作を実行しないでください。独自のスレッドを起動するか、 AsyncTask クラスを使用して、これを解決するより便利な方法を見つけてください。

2