Articles of android anr dialog

仅在特定设备上的SurfaceView中的ANR – 唯一的解决方案是短暂的睡眠时间

在我的Android应用程序中,我使用SurfaceView绘制东西。 它在数千台设备上运行良好 – 除了现在用户开始在以下设备上报告ANR: LG G4 Android 5.1 3 GB RAM 5.5“显示 2560 x 1440 px分辨率 索尼Xperia Z4 Android 5.0 3 GB RAM 5,2“显示 1920 x 1080像素分辨率 华为Ascend Mate 7 Android 5.1 3 GB RAM 6.0“显示 1920 x 1080像素分辨率 HTC M9 Android 5.1 3 GB RAM 5.0“显示 1920 x 1080像素分辨率 所以我得到了LG G4,确实能够validation问题。 它与SurfaceView直接相关。 现在猜猜经过几个小时的调试后修复了什么问题? 它正在取代…… […]

“ANR”是一个例外或错误还是什么?

ANR是exception,错误还是什么? 我们真的可以在try{} catch(){}结构中捕获它吗?

ANR输入调度超时

ANR输入调度超时(等待发送非键事件,因为触摸的窗口尚未完成处理500.0ms前传递给它的某些输入事件。等待队列长度:60。等待队列头时间:8503.2ms。) 嗨! 我从几个用户那里得到了这个奇怪的ANR报告。 不幸的是,我对ANR报告的知识非常有限,我希望有人可以帮助我理解这可能是什么原因造成的。 “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 (a android.os.MessageQueue) at android.os.Handler.removeMessages(Handler.java:652) at android.view.Choreographer.removeCallbacksInternal(Choreographer.java:418) – locked (a java.lang.Object) at android.view.Choreographer.removeCallbacks(Choreographer.java:406) at android.view.View.removeCallbacks(View.java:13179) […]

NoClassDefFoundError:android.app.ANRManagerProxy

有谁知道为什么会这样? 我看到我的应用程序报告了这个崩溃,但我不知道它是什么。 java.lang.NoClassDefFoundError: android.app.ANRManagerProxy Thread: Binder_3, Exception: java.lang.NoClassDefFoundError: android.app.ANRManagerProxy at android.app.ANRManagerNative.asInterface(ANRManagerNative.java:30) at android.app.ANRManagerNative$1.create(ANRManagerNative.java:94) at android.app.ANRManagerNative$1.create(ANRManagerNative.java:88) at android.util.Singleton.get(Singleton.java:34) at android.app.ANRManagerNative.getDefault(ANRManagerNative.java:37) at android.os.MessageLogger.dump(MessageLogger.java:253) at android.app.ANRAppManager.dumpMessageHistory(SourceFile:38) at android.app.ActivityThread$ApplicationThread.dumpMessageHistory(ActivityThread.java:1176) at android.app.ApplicationThreadNative.onTransact(ApplicationThreadNative.java:609) at android.os.Binder.execTransact(Binder.java:351) at dalvik.system.NativeStart.run(Native Method)

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) […]

诊断ANR的一般指南

有ANR跟踪文件包括很多的问题,答案总是“哦,问题是在你的线程76,修复你的http调用”或什么的:)但我找不到任何一般指南或教程如何读取这个痕迹,一步一步的任何ANR。 有没有? 我特别有几个问题: 总是有可能从谷歌控制台中看到真实世界ANR的线程痕迹问题吗? 或者是否有可能只是没有相关的信息,我运气不好,如果我不能在本地重现ANR? 这些信息包含哪些线程? 我想应用程序中有所有线程,但其余的呢? 他们在某种程度上与我有关吗? (例如,我的一些线程正在等待的线程等),或者也有完全不相关的进程? 如何谷歌播放控制台确定ANR发生的“地方” – 然后显示在ANR列表中,例如: ANR keyDispatchingTimedOut miesto:com.sample.myapp / myapp.activities.SplashActivity 因为SplashActivity无法在提供的线程跟踪文本中看到。 我知道我应该在等待状态中寻找线程处理潜在的死锁等。线程“等待自己”的情况如何? “AsyncTask#1”prio = 5 tid = 15 WAIT | group =“main”sCount = 1 dsCount = 0 obj = 0x41bb50c0 self = 0x5529a868 | sysTid = 2448 nice = 0 sched = 0/0 cgrp = apps handle = […]

什么是Dalvik线程状态?

每个ANR转储列出了ANR时所有线程的状态。 我知道WAIT是什么意思,但是SUSPENDED和MONITOR是什么意思? 提前致谢…

ANR随机使用的应用程序

我有一个VOIP应用程序,引擎部分是C(NDK)级别。随机应用程序的使用我结束了ANR指向“at android.os.MessageQueue.nativePollOnce(Native Method)” 。 使用android-ndk-r5 ANR痕迹: —– pid 13735 at 2013-05-23 15:56:47 —– Cmd line: com.myapp.voip DALVIK THREADS: (mutexes: tll=0 tsl=0 tscl=0 ghl=0) "main" prio=5 tid=1 NATIVE | group="main" sCount=1 dsCount=0 obj=0x41315508 self=0x413058e8 | sysTid=13735 nice=0 sched=0/0 cgrp=apps handle=1074442032 | schedstat=( 23115964360 3706387400 21258 ) utm=1651 stm=660 core=3 #00 pc 0000da70 /system/lib/libc.so (epoll_wait+12) #01 pc […]

debugging时禁用ANR消息

在debugging应用程序并停在断点处时,Android反复显示“<Application>没有响应,你想closures它吗? 有“等待”和“确定”选项的对话框。 有没有什么办法可以在应用程序正在debugging时禁用它们?

当我的代码没有出现在堆栈上时,如何解释ANR traces.txt?

我正在尝试在我的Android应用程序中debugging持久性ANR(“应用程序没有响应”)。 我已阅读这些线程: Android – 我如何调查一个ANR? 如何debuggingAndroid的ANR? 解释ANR堆栈跟踪 重要的信息是使用StrictMode ,我会这样做。 不过,我仍然想解释我反复看到的ANR堆栈的原因。 首先,我没有看到任何主线程 – 而是在主“组”中看到很multithreading,其中包括一个名为“waitForActivityStart”的线程。 没有任何线程可以看到我的代码,所以我很困惑,由于我自己的代码,ANR是如何发生的。 我从安装的库中看到的唯一代码是Google Analytics(GA),您可以看到标题为“GAThread”。 那可能是罪魁祸首? 如果是这样,有人能解释我怎么能从这个报告中推断出来吗? 这里是我使用ADB在运行4.2.2的Nexus 7上拉动的traces.txt的输出 —– pid 15370 at 2013-05-11 11:12:04 —– Cmd line: com.appspot.myapp DALVIK THREADS: (mutexes: tll=0 tsl=0 tscl=0 ghl=0) "waitForActivityStart" prio=5 tid=12 WAIT | group="main" sCount=1 dsCount=0 obj=0x41d63a98 self=0x658cafd0 | sysTid=16096 nice=0 sched=0/0 cgrp=apps handle=1736692928 | state=S […]