libc++abi.dylib: terminate_handler 意外抛出异常 - 0 堆栈跟踪 iOS7 / iOS 8

Posted

技术标签:

【中文标题】libc++abi.dylib: terminate_handler 意外抛出异常 - 0 堆栈跟踪 iOS7 / iOS 8【英文标题】:libc++abi.dylib: terminate_handler unexpectedly threw an exception - 0 stack trace iOS7 / iOS 8 【发布时间】:2014-11-13 22:29:36 【问题描述】:

随机(这就是我问这个问题的原因),当我想将数据显示到 textView 时,我的应用程序崩溃了。 我在调试控制台中收到的唯一错误消息是:

libc++abi.dylib: terminate_handler unexpectedly threw an exception

我在 Google 上搜索过,但无法找到如何正确以及如何发生的线索。

【问题讨论】:

我收到了类似的错误,如果我查看堆栈跟踪,看起来 ios 正在尝试 NSLog 一个 NSAutoLayoutContraint 并且它导致崩溃,因为这个特定的没有实现描述方法. 我不使用自动布局。我使用自动调整掩码机制。 【参考方案1】:

我遇到了同样的错误,“清理”并没有解决它。

这是由我的 Internet 测试流程引起的,我检查 WiFi 是否已连接,但不是该 WiFi 是否具有可以解析提供的 URL 的活动 Internet 连接。它执行 dataWithContentsOfURL: 最终会失败。用户 Keith 在此处向 question 提出了类似的建议,帮助我确定了问题——即向 C++ 异常添加断点。

要启用 -- 单击断点视图,然后单击最底部的“+”以添加断点。如下设置,stack trance会更有意义。

【讨论】:

这对我找到问题有很大帮助,因为 C++ 代码没有回溯导致崩溃,断点是停止执行代码并查看崩溃何时发生的唯一方法。我认为这应该是公认的答案。【参考方案2】:

清理项目。 检查每个约束并删除损坏的约束。 再次清理项目,它应该可以工作。

【讨论】:

我会试试的,我会回来的。 也许这回答了用户在特定情况下的问题,但它肯定不是给定问题的解决方案。【参考方案3】:

这可能是由不再存在的插座引起的(可能已被重命名或删除)。

以下是有关如何检查网点的提示: 选择疑似插座的容器视图,注意“!”连接检查器中的标记。

【讨论】:

【参考方案4】:

我收到了这个问题,因为我设置了[self addObserver:self forKeyPath:@"_defaultAgType" options:NSKeyValueObservingOptionNew | NSKeyValueObservingOptionOld context:nil];,但我没有在dealloc 中删除它。我在 dealloc 函数中通过[self removeObserver:self forKeyPath:@"_defaultAgType"]; 解决了这个问题。

【讨论】:

【参考方案5】:

发生这种情况的另一个原因是当您声明了一个 UI 元素但从未添加到屏幕上但您仍然尝试对其进行更改时。

在我的例子中,我在代码中声明了一个UIBarButtonItem,但我从未将它添加到 View 中。当我尝试删除它而不添加它时,我遇到了这个问题。

【讨论】:

【参考方案6】:

如果您重命名/移动了您的视图控制器类,请确保您已在身份检查器上为情节提要上的场景检查了 Inherit Module From Target

【讨论】:

以上是关于libc++abi.dylib: terminate_handler 意外抛出异常 - 0 堆栈跟踪 iOS7 / iOS 8的主要内容,如果未能解决你的问题,请参考以下文章

Swift 2 到 3 迁移错误(libc++abi.dylib:以 NSException 类型的未捕获异常终止)

UITableViewDataSource 导致 libc++abi.dylib:以 NSException 类型的未捕获异常终止

libc++abi.dylib: terminate_handler unexpectedly threw an exception错误小结

libc++abi.dylib:以 NSException (lldb) 类型的未捕获异常终止 TabBarController->TableViews->ViewControllers

libc++abi.dylib: terminate_handler 意外抛出异常 - 0 堆栈跟踪 iOS7 / iOS 8

(Swift 3) 父子上下文崩溃核心数据 (libc++abi.dylib: 以 NSException (Recorded Frame) 类型的未捕获异常终止)