【问题标题】:Get crash information when debugger is not attached?未附加调试器时获取崩溃信息?
【发布时间】:2014-12-13 21:03:40
【问题描述】:

我正在使用Android Studio 开发应用程序。现在,当我执行以下操作时,我遇到了一个应用程序崩溃的错误:

  1. 按主页按钮。
  2. 使用设备大约 10 分钟(即等待)。
  3. 再次运行应用程序。崩溃!

没有更简单的方法可以重现崩溃(onResume 中没有)。可以想象,这很难调试。在理想情况下,操作系统(Android 5.0)会让我向自己发送错误报告。该应用程序尚未发布,因此我不知道如何获取故障转储。它是否保存在设备的某个位置?

我确实尝试使用wait for debugger 设置从Developer Options 调试应用程序,然后从Android Studio 中附加到进程。然而,这似乎使错误消失了。 (该应用可能已重新启动。)

问:在这些情况下,我如何找到崩溃的原因?

【问题讨论】:

  • 你检查过onStop、onStart和onRestart方法了吗?

标签: android android-studio logcat


【解决方案1】:

我的直觉告诉我,您在应用程序中使用了一些“静态”变量/字段。 当您的应用程序进入后台并且未使用时,系统可能会从内存中删除此应用程序的进程(由于内存管理)。当您返回时,应用程序对象和系统中的所有应用程序进程都被重新创建,因此所有静态变量都被清除/重新初始化。

我说的对吗?

【讨论】:

  • 绝对是一个合理的原因。会检查的!
【解决方案2】:

尝试查看您的 logcat,如果这不适合您。尝试一些崩溃分析,如下所示。

https://mint.splunk.com/

只需一行即可将其集成到您的应用中,每当您的应用崩溃时,您都会收到一封包含崩溃日志的邮件。

它将很容易帮助您确定您的崩溃情况..

出于好奇,您是否在 Activity 中使用了任何单例类?

【讨论】:

    【解决方案3】:

    我使用adb 发现了崩溃,如here 所述。从来没有意识到 logcat 会保留以前执行的日志。不错!

    【讨论】:

      猜你喜欢
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多