在android中检测应用程序崩溃

Posted

技术标签:

【中文标题】在android中检测应用程序崩溃【英文标题】:Detect app crash in android 【发布时间】:2015-12-17 05:34:50 【问题描述】:

我正在构建一个有时会崩溃的应用程序,我想知道它在我下次打开它时崩溃了,所以我可以向用户建议一些崩溃后的选项。 如何检测崩溃? 另外我希望能够在用户崩溃之前保存用户的工作,我的意思是实时检测崩溃,我可以不知道它在哪里崩溃吗?

【问题讨论】:

【参考方案1】:

您需要知道它在哪里崩溃,以便将try/catch 块设置在正确的位置,呃,catch 崩溃并保存数据或您想到的任何内容。

如果您想更详细地考虑,这称为“优雅”终止。

不幸的是,Java 析构函数/finalize 方法和诸如 onDestroy 之类的生命周期方法都没有 try/catch 块那么强大,所以恐怕这是您唯一的选择,我们中有多少人处理异常预防。没有人会故意提供崩溃的用户体验,更不用说丢失数据了。

【讨论】:

【参考方案2】:

参加ACRA library。您可以对其进行配置,以便在发生崩溃时进行控制,甚至通过电子邮件发送崩溃日志

【讨论】:

【参考方案3】:

您可以使用try/catch blocks,然后在您的catch 中发送Exception 的详细信息。

【讨论】:

是的...我知道那个方法,但我不想尝试/捕获每个 if【参考方案4】:

有实现 UncaughtExceptionHandler as mentioned in these answers 并在某个文件中写入崩溃报告或以其他方式使用它。

【讨论】:

【参考方案5】:

ACRA 已被提及。

但是对于付费版本,我发现BugSnag 非常擅长这一点。 或者,如果您想加倍努力,请尝试AppSee。

AppSee 甚至有关于崩溃如何发生的视频录制会话。它来自于点击第二个列表上的那个按钮、菜单按钮,甚至当用户在你的浏览器中向左滑动时。

【讨论】:

以上是关于在android中检测应用程序崩溃的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin Android C#:使用 xml 资源文件夹和清单来定义用于检测连接的 USB 设备崩溃应用程序的意图过滤器

应用崩溃了?Android vitals 帮您精确诊断

检测到并上传了Firebase / Crashlytics事件,但不可见

Xamarin App在调试时运行但在发布时崩溃

android updateLocaleListFromAppContext NullPointerException 中的问题

检测开/关键按Android