Articles of android anr dialog

Android ANR – 输入调度超时

我已经开始从许多代码位置接收几个奇怪的ANR报告(应用程序无响应)。 输入调度超时(等待,因为没有窗口有焦点,但有一个专注的应用程序,最终可能在完成启动时添加一个窗口。) 这个ANR总是在我的代码中的不同位置popup,并且它们不遵循逻辑模式。 我在一个月前开始收到这些错误。 有一些ANR报告的例子和他各自的代码行: at android.support.v7.app.AppCompatActivity.setContentView (AppCompatActivity.java:139) at br.com.xxx.xxx.activities.MainActivity.onCreate (MainActivity.java:71) at android.app.Activity.performCreate (Activity.java:6245) MainActivity.java:71: setContentView(R.layout.activity_main); 另一个例子: at android.support.v4.app.BackStackRecord.replace (BackStackRecord.java:421) at br.com.xxx.xxx.activities.MainActivity.openFragment (MainActivity.java:146) at br.com.xxx.xxx.activities.MainActivity.openMenu (MainActivity.java:121) currentFragment = new CardsFragment(); MainActivity.java:146: openFragment(currentFragment); 那个甚至没有参考代码: at java.lang.Object.wait! (Native method) – waiting on (a java.lang.Object) at java.lang.Thread.parkFor$ (Thread.java:1220) – locked (a java.lang.Object) at sun.misc.Unsafe.park (Unsafe.java:299) at java.util.concurrent.locks.LockSupport.park (LockSupport.java:158) […]

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

我试图在我的Android应用程序中调试持久性ANR(“应用程序无响应”)。 我已阅读这些主题: Android – 如何调查ANR? 如何调试Android ANR? 解释ANR堆栈跟踪 最重要的信息是使用StrictMode ,我将这样做。 但是,我仍然想解释我反复看到的ANR堆栈的原因。 首先,我没有看到任何主线程 – 而是在主“组”中看到许multithreading,包括一个名为“waitForActivityStart”的线程。 我没有看到我的代码,所以我很困惑这个ANR是如何因为我自己的代码而发生的。 我从我安装的库中看到的唯一代码是Google Analytics(GA),您可以看到标题为“GAThread”的代码。 这可能是罪魁祸首吗? 如果是这样,有人可以解释我如何从这份报告中推断出来吗? 这是我在运行4.2.2的Nexus 7上使用ADB提取的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 | […]

在调试期间阻止ApplicationNotResponding

我是Android的新手并且有调试问题。 我知道什么是ANR,并且在我正常运行我的应用程序时看不到它们。 但是,当我尝试调试我的BoradcastReceiver时,我太慢并得到ANR消息。 有没有办法在调试会话期间关闭ANR? 我可以使用日志语句来查看发生了什么,但这很烦人…. 编辑:实际上,我不想在LogCat中压制ANR,我想告诉android在调试期间不要抛出ANR。 我的意思是允许广播接收器运行时间超过5秒。 但我想这是不可能的,而是我应该委托给一个允许运行更长时间的服务,我也可以更轻松地调试。 提前致谢! 招呼

如何分析Android /data/anr/traces.txt文件?

我的Android应用程序上有一个ANR错误。 它的痕迹如下 “main”和“Thread-20153”是ANR的主要问题? DALVIK THREADS: (mutexes: tll=0 tsl=0 tscl=0 ghl=0) “main” prio=5 tid=1 SUSPENDED | group=”main” sCount=2 dsCount=1 obj=0x40aee490 self=0x1fbad70 | sysTid=3805 nice=0 sched=0/0 cgrp=default handle=1074664744 | schedstat=( 378517060062 270739989762 791048 ) utm=33581 stm=4270 core=0 at android.app.ActivityThread.performResumeActivity(ActivityThread.java:~2812) at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2851) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1287) at android.os.Handler.dispatchMessage(Handler.java:99) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:4945) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) at […]

仅在特定设备上的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 = […]