有没有办法找出我的应用程序扔ANR(应用程序无响应)的位置.我看了/ data中的traces.txt文件,我看到了我的应用程序的跟踪.这就是我在追踪中看到的.
DALVIK THREADS:
"main" prio=5 tid=3 TIMED_WAIT
| group="main" sCount=1 dsCount=0 s=0 obj=0x400143a8
| sysTid=691 nice=0 sched=0/0 handle=-1091117924
at java.lang.Object.wait(Native Method)
- waiting on <0x1cd570> (a android.os.MessageQueue)
at java.lang.Object.wait(Object.java:195)
at android.os.MessageQueue.next(MessageQueue.java:144)
at android.os.Looper.loop(Looper.java:110)
at android.app.ActivityThread.main(ActivityThread.java:3742)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:739)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:497)
at dalvik.system.NativeStart.main(Native Method)
"Binder Thread #3" prio=5 tid=15 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x434e7758
| sysTid=734 nice=0 sched=0/0 handle=1733632
at dalvik.system.NativeStart.run(Native Method)
"Binder Thread #2" prio=5 tid=13 NATIVE
| group="main" sCount=1 dsCount=0 s=0 obj=0x433af808 …Run Code Online (Sandbox Code Playgroud) 我们在应用程序的不同部分看到了此 ANR。想了解导致此 ANR 的原因吗?
main (native): tid=1 systid=31940
#00 pc 0x5431c libc.so
#01 pc 0x1313a5 libart.so
#02 pc 0x2ab05b libart.so
#03 pc 0x3659 libnativehelper.so
#04 pc 0x9dee9 libandroid_runtime.so
#05 pc 0x65c45 libgui.so
#06 pc 0x11dcd libutils.so
#07 pc 0x11abf libutils.so
#08 pc 0xbcc7d libandroid_runtime.so
at android.os.MessageQueue.nativePollOnce(MessageQueue.java)
at android.os.MessageQueue.next(MessageQueue.java:339)
at android.os.Looper.loop(Looper.java:199)
at android.app.ActivityThread.main(ActivityThread.java:8276)
at java.lang.reflect.Method.invoke(Method.java)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:612)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1006)
Run Code Online (Sandbox Code Playgroud)
这是 firebase 对于此 ANR 的说法 -
ANR 发生时该线程处于空闲状态。我们没有足够的信息来确定根本原因。
performance android android-anr-dialog firebase android-looper
我刚刚在Google Play商店推出了一个应用程序,我正在探索开发人员控制台并查看了标签Crashes and ANR.
ANR代表什么?
此外,我的应用程序似乎已经在我朋友的一些电话上崩溃了,但他们无法"报告"此类崩溃.我应该如何启用此类功能以便用户报告崩溃,以便在Crashes/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 <0x08f02647> (a android.os.MessageQueue)
at android.os.Handler.removeMessages(Handler.java:652)
at android.view.Choreographer.removeCallbacksInternal(Choreographer.java:418)
- locked <0x0bd41e74> (a java.lang.Object)
at android.view.Choreographer.removeCallbacks(Choreographer.java:406)
at android.view.View.removeCallbacks(View.java:13179)
at android.support.v4.widget.aa.a(unavailable:-1)
at android.support.v4.widget.DrawerLayout.a(unavailable:-1)
at android.support.v4.widget.DrawerLayout.onInterceptTouchEvent(unavailable:-1)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2108)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2525)
at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2254)
at …Run Code Online (Sandbox Code Playgroud) 我在我的应用程序中获取此强制关闭错误,当我试图用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 …Run Code Online (Sandbox Code Playgroud) 有谁知道为什么会这样?我看到我的应用程序报告了这个崩溃,但我不知道它是什么.
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)
Run Code Online (Sandbox Code Playgroud) crash android noclassdeffounderror stack-trace android-anr-dialog
ANR是异常,错误还是什么?我们真的可以在一个try{} catch(){}结构中捕获它吗?
我收到了一份 ANR 崩溃报告,其“标题”如下:
Input dispatching timed out (ActivityRecord{abcdefg com.mypackage/.my.subpackage.MyActivity t3125} does not have a focused window)
主线程的堆栈跟踪如下所示:
#00 pc 000000000009ca68 /apex/com.android.runtime/lib64/bionic/libc.so (__epoll_pwait+8)
#00 pc 0000000000019d88 /system/lib64/libutils.so (android::Looper::pollInner(int)+184)
#00 pc 0000000000019c68 /system/lib64/libutils.so (android::Looper::pollOnce(int, int*, int*, void**)+112)
#00 pc 0000000000112174 /system/lib64/libandroid_runtime.so (android::android_os_MessageQueue_nativePollOnce(_JNIEnv*, _jobject*, long, int)+44)
at android.os.MessageQueue.nativePollOnce (Native method)
at android.os.MessageQueue.next (MessageQueue.java:335)
at android.os.Looper.loop (Looper.java:183)
at android.app.ActivityThread.main (ActivityThread.java:7700)
at java.lang.reflect.Method.invoke (Native method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:612)
at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:997)
Run Code Online (Sandbox Code Playgroud)
所有其他线程的堆栈跟踪都不包含我的应用程序的任何代码。
不幸的是,我找不到有关此类 ANR 的任何信息。此处在 SO 或其他地方描述的所有 ANR 的标题都是“正在等待,因为没有窗口具有焦点……”或“正在等待发送非键事件,因为……”。有谁知道 ANR 是什么意思,也许我应该在哪里搜索问题?
我在将应用程序部署到 Google Play 商店时遇到问题。返回的异常是这样的:
05-10 14:14:31.383: E/ActivityManager(1572): ANR in com.google.android.googlequicksearchbox:search
05-10 14:14:31.383: E/ActivityManager(1572): PID: 16601
05-10 14:14:31.383: E/ActivityManager(1572): Reason: Broadcast of Intent { act=android.accounts.LOGIN_ACCOUNTS_CHANGED flg=0x5000010 cmp=com.google.android.googlequicksearchbox/com.google.apps.tiktok.account.data.device.DeviceAccountsChangedReceiver_Receiver }
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激!
在调试应用程序并在断点处停止时,Android会反复显示"<应用程序>没有响应.是否要关闭它?" 带有"等待"和"确定"选项的对话框.有没有办法在调试应用程序时禁用它们?
android ×10
crash ×2
performance ×2
catch-block ×1
exception ×1
firebase ×1
google-play ×1
sdk ×1
stack-trace ×1
xamarin ×1