Android / google ANR 崩溃,没有特定原因

我有以下来自 android 的崩溃报告:


> java.lang.RuntimeException:    at

> android.app.ActivityThread.performLaunchActivity

> (ActivityThread.java:2822)   at

> android.app.ActivityThread.handleLaunchActivity

> (ActivityThread.java:2897)   at android.app.ActivityThread.-wrap11

> (Unknown Source)   at android.app.ActivityThread$H.handleMessage

> (ActivityThread.java:1598)   at android.os.Handler.dispatchMessage

> (Handler.java:105)   at android.os.Looper.loop (Looper.java:251)   at

> android.app.ActivityThread.main (ActivityThread.java:6572)   at

> java.lang.reflect.Method.invoke (Native Method)   at

> com.android.internal.os.Zygote$MethodAndArgsCaller.run

> (Zygote.java:240)   at com.android.internal.os.ZygoteInit.main

> (ZygoteInit.java:767)

我的项目中没有突出显示特定的类/文件/行,也没有调试 android 时通常会期望的“由”行。


谷歌搜索任何一行似乎只会让我想到关于空指针异常的问题,这不是(无论如何我已经知道如何调试这些问题,所以请不要指责我调试空指针)。


我真正需要一些建议的是从哪里开始调试/重新创建这个非常有限的跟踪崩溃。


有趣的是(也许)它只在 android 8.0 上报告 > 但在各种设备上


慕桂英546537
浏览 206回答 2
2回答

红糖糍粑

ANR 是应用程序无响应的缩写。Android开发者网站对调试这些文章在这里。要理解的关键是,这意味着您的应用程序正在执行一些在 UI 线程上需要很长时间的事情。常见的cuplrit有:使用网络使用磁盘一些密集的计算访问数据库你知道这正在发生android.app.ActivityThread.performLaunchActivity。幸运的是,Android 是开源的,所以如果你谷歌“android source performLaunchActivity”,你会发现源代码是最重要的结果。您可以看到这是启动您的应用程序的代码。因此,您的应用程序启动中的某些内容运行非常缓慢。你可以做很多事情来调查这个:在您的应用程序启动中查找访问磁盘、网络或数据库的代码并将其移动到后台线程在严格模式下运行您的应用程序,这将警告您的不良行为上面链接的文章中有更多提示。

www说

ANR,应用程序无响应,当您的应用程序在主线程上做太多工作时发生,通常是由于磁盘或网络 I/O。试着检查一下。我想你可以StrictMode调试它
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java