【问题标题】:Android app crashes with SIGABRT Signal 6 only while Eclipse debuggingAndroid 应用程序仅在 Eclipse 调试时因 SIGABRT Signal 6 而崩溃
【发布时间】:2014-03-02 23:27:56
【问题描述】:

我有一个应用程序可以在没有附加调试器的设备上完美运行。但是,我在 Eclipse 中调试时遇到了问题:

当主线程挂起大约 10 秒或更长时间(例如在遇到断点之后)时,主线程会抛出一个 SIGABRT,显然来自 libc。

我能想到的唯一解释是,主线程上的消息队列在未被轮询时会溢出来自另一个线程的消息。但是,当主线程挂起时,我没有看到堆增长。此外,虽然我的应用在所有服务、内容提供者、广播接收器、http 和地图工作线程等之间有大约 20 个线程,但我真的想不出任何过多消息的来源。

所以我的问题是:我该如何解决这个问题?我可以使用哪些工具以及如何查找导致我的应用在调试器中挂起时崩溃的原因?

编辑 1:

logcat中唯一的就是:

02-05 22:23:54.861: I/dalvikvm(26795): threadid=3: reacting to signal 3
02-05 22:23:54.901: D/dalvikvm(26795): threadid=1: still suspended after undo (sc=1 dc=1)
02-05 22:23:54.901: I/dalvikvm(26795): Wrote stack traces to '/data/anr/traces.txt'
02-05 22:23:58.905: A/libc(26795): Fatal signal 6 (SIGABRT) at 0x000002f5 (code=0), thread 26795 (om.myapp)

编辑 2:

进一步调查让我相信这是 android 故意杀死我的进程,因为它错误地认为 UI 线程已挂起。问题不在我的应用程序中。所以现在我的问题是:如何阻止 Android 在调试时杀死我的进程?

【问题讨论】:

  • 你找到解决办法了吗?
  • 目前还没有找到解决办法。
  • 我的问题与线程有关,在错误的时间调用函数或递归调用本身(堆栈溢出)。改变这个可以解决问题。
  • @zyamys 你的问题解决了吗?我有同样的问题。如果你解决了,请告诉我。
  • @Maid786 同样的问题,你找到解决方法了吗?

标签: android eclipse sigabrt


【解决方案1】:

android 故意终止进程,因为它认为 UI 线程已挂起,所以它是 ANR 正确的。 出于调试目的,您可以,

转到设置 -> 开发人员选项并选中显示所有 ANR。

这将为在后台运行的应用显示“应用无响应”对话框。您可以单击对话框中的等待按钮,以防止系统在调试器附加之前终止您的进程。 请注意,对于在前台运行的应用程序,该对话框会自动打开。对于后台应用,您必须启用此选项

【讨论】:

  • 在 LG Optimus G v4.4.2 上仍然会因fatal signal 6 而崩溃。一个很好的解释。
  • 问题是,如果垃圾收集最多需要三秒钟(经常发生这种情况),操作系统将杀死虚拟机(从而杀死你的应用程序)。作为程序员,你无能为力,除了诅咒谷歌因为他们的无能而坚持要杀死你的应用程序。
【解决方案2】:

这在 android 7.1.1 中开始发生在我身上

在附加调试器时,我的应用程序总是崩溃,在调试模式下启动应用程序时也是如此。

对我来说解决它的方法很简单:

  • 运行您的应用
  • 在调试中点击“静音断点”
  • 附加调试器
  • 重新点击“静音断点”取消静音
  • 完成,再次调试

【讨论】:

  • 在 Android 7.1.1 上使用 Nexus 5x 时遇到了同样的问题,但我在 Android 6.0.1 上的 Galaxy S6 Edge 中也看到了类似的行为。如前所述,将断点静音效果很好。同样,在没有分配任何断点的情况下启动调试器也是一种类似的方法
  • 当我从 Android Studio 以调试模式运行时,我也在 7.1.1 中使用模拟器看到了这一点。应用程序启动正常,但是当我使用 ListView 进入活动时,它会自行关闭。如果我从 Android Studio 以正常模式运行,那很好。
【解决方案3】:

我遇到了类似的问题,但 Sam 的建议没有帮助 - 我必须实际删除断点,然后它才对我有用。

【讨论】:

    【解决方案4】:

    我不得不重新安装 android studio 一次,第二次它就自行消失了

    【讨论】:

      猜你喜欢
      • 2022-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-01
      • 1970-01-01
      • 2018-12-01
      • 1970-01-01
      • 2017-10-16
      相关资源
      最近更新 更多