【问题标题】:Xcode 4.2 SIGABRT ErrorXcode 4.2 SIGABRT 错误
【发布时间】:2012-02-03 15:02:55
【问题描述】:

每次我在 iPad 模拟器上运行我的应用程序时,它都能完美运行。但是,当我在 iPhone 模拟器上运行它时,当我单击主页按钮时,我的 main.m 文件中的 Xcode 中出现错误,提示“线程 1:程序接收到的信号:SIGABRT”。它在我的 main.m 代码中突出显示了这一行:return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));

当我在 iPad 模拟器上按下主页按钮时,这个问题根本不会发生。我在这里对这个错误进行了大量研究,但似乎没有发现任何有用的信息。有谁知道如何解决这个问题?

编辑:这是来自调试器控制台的更多信息

“无法向引导服务器注册 None.TestApplication。错误:未知错误代码。 这通常意味着该进程的另一个实例已经在运行或挂在 debugger.sharedlibrary apply-load-rules all 当前语言:自动;目前客观-c (gdb)

【问题讨论】:

  • SIGABRT 一般表示程序抛出了异常。调试器控制台中应该有更多信息。您需要编辑您的问题以包含该信息。此外,您可以在objc_exception_throw 中设置断点以获取引发异常的堆栈跟踪。
  • 谢谢,我添加了更多信息。

标签: ios xcode simulator sigabrt


【解决方案1】:

UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 这一行仅仅意味着在你的程序运行过程中抛出了一个异常。这可能是内存问题,也可能是简单的运行时错误。查看目标调试器控制台;它会告诉你错误发生在哪里。

因编辑问题而编辑:我之前已通过将 iOS 模拟器恢复为出厂默认设置解决了这个问题(打开左上角的“iOS 模拟器”菜单 -> 重置内容和设置)。然后退出iOS模拟器和Xcode,然后重启电脑。这将摆脱进程的另一个实例。

【讨论】:

  • 非常感谢。我只是这样做了,但得到了完全相同的错误。要将模拟器恢复为出厂默认设置,我只需转到“iOS模拟器”下拉菜单,然后选择“重置内容和设置”对吗?对不起,如果这是一个愚蠢的问题,我还是个初学者。
  • 重做了,这次也重新启动了我的电脑,成功了。非常感谢!
【解决方案2】:

我刚刚遇到了同样的问题(实际上浪费了大约 2 个小时!)。没有抛出异常。最终,我偶然发现了一个像这样的答案。重置并重新启动模拟器和 XCode 并没有为我清除它,但重新启动可以。

所以,如果您看到这一点,并且回溯中没有异常,那么我认为重新启动您的机器可能会修复它。

【讨论】:

    【解决方案3】:

    我完成了以上所有操作,包括重新启动计算机、重置模拟器但没有任何效果,所以我最终不得不将所有文件复制到一个单独的文件夹中,创建一个新项目并重建我的 nib 文件,然后从文件中复制并粘贴在我的单独文件夹中进入我的新项目。真的很恶心。如果没有什么对你们有用并且你的应用程序不是太复杂,这可能是一个替代方案。也许不是最好的,但可以防水。

    【讨论】:

      【解决方案4】:

      我遇到过非常相似的问题,发现如果我从 LLDB 调试器切换到 GDB(从 Product / Scheme / Edit Scheme 菜单),问题就会消失。值得一试。

      【讨论】:

        【解决方案5】:

        在我的例子中,我在 viewDidLayoutSubviews 中有一些代码,更新了布局并导致再次调用 viewDidLayoutSubviews 进入无限循环。移动这段代码解决了这个错误。

        我想主线程上的任何无限循环最终都会成为未捕获的异常。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2012-03-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2013-08-20
          相关资源
          最近更新 更多