【问题标题】:Crashes and ANR on Android Developer ConsoleAndroid 开发者控制台上的崩溃和 ANR
【发布时间】:2013-01-21 19:36:56
【问题描述】:

我最近在 Google Play Store 上启动了一个应用程序,我正在探索开发者控制台并看到了Crashes and ANR 的标签。

ANR 代表什么?

此外,我的应用似乎之前在我朋友的某些手机上崩溃过,但他们无法“报告”此类崩溃。我应该如何启用这些功能,以便用户报告崩溃,以便我在开发者控制台的崩溃/ANR 选项卡下看到?

【问题讨论】:

  • 应用程序无响应,是否要“等待”、“关闭应用程序”
  • ANR => 应用程序无响应。如果应用在 UI 线程上做了很多工作,你会看到这些错误。

标签: android crash google-play crash-reports android-anr-dialog


【解决方案1】:

ANR 代表应用程序无响应。如果您的应用在 UI 线程上做了很多工作,那么您将看到其中一个强制关闭/等待对话框。这就是 ANR。

至于崩溃报告,如果您的应用通过 Google Play 分发,则内置崩溃报告。当您的应用崩溃时,用户将看到一个对话框,其中包含“强制关闭”或“报告”选项。用户必须按下报告选项才能向您发送崩溃报告,否则您可能永远不会知道。

如果您不通过 Google Play 进行分发,您可能需要考虑使用像 ACRA 这样的库,它会通过电子邮件向您发送崩溃报告,将其上传到 Google Docs 电子表格,或者您可以编写自己的自定义处理程序来处理崩溃报告.

关于 ACRA 的详细信息可以在这里找到:http://code.google.com/p/acra/

下面是这些对话框的样例。左侧的关闭/报告对话框和右侧的 ANR。 Android 3.0+ 位于顶部,较旧的对话框位于底部。

【讨论】:

  • 嗯,这很奇怪,因为我朋友的手机上似乎只显示“ 已停止”,他只能点击确定。
  • 我已经有一段时间没有出现应用崩溃了,所以我不能确定它现在的样子,但该功能是在 Android 2.2 中引入的,过去看起来像这样:android-developers.blogspot.com/2010/05/…
  • 是的,我以前在其他应用程序上也看到过!这就是为什么我想知道是否需要做一些特殊的事情来激活它,因为我的应用程序在崩溃时似乎没有它......
  • ACRA 无法捕获并报告 ANR。因为 Acra 与应用程序的 VM 一起运行,并且 ANR 是由系统看门狗在 VM 外部生成的。但是 ACRA 非常方便报告 Java 异常。 ANR 和 JNI 异常报告功能目前不可用。 groups.google.com/forum/#!msg/acra-discuss/ETy1bm7pvh8/…
  • 一个问题。如果我让应用程序在崩溃时重新启动 - 就像在这个答案 stackoverflow.com/a/2903866/168719 中一样 - 它还会向 Google 报告崩溃详细信息吗? (我愿意)
【解决方案2】:

当应用程序崩溃时,会生成一个墓碑。从本质上讲,您的应用程序需要知道它的某些部分已崩溃(如果您依赖某些提供回调/状态的 API 或库)但如果它真的只是您的应用程序正在死去 - 您将很难确定它是崩溃还是不是。

“错误报告”不是您可以在 android 中使用的预制类,您可能需要自己创建一个。再说一次,还有 ACRA - http://acra.ch/

一些链接:

http://android-developers.blogspot.com/2010/05/google-feedback-for-android.html

http://developer.android.com/distribute/googleplay/strategies/app-quality.html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 2016-01-22
    • 2017-11-02
    • 1970-01-01
    • 2019-03-18
    • 2018-01-15
    相关资源
    最近更新 更多