2012-01-05 104 views
9

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

当我按下iPad模拟器上的主页按钮时,不会发生此问题。我在这里做了很多关于这个错误的研究,但似乎没有什么用处。有谁知道如何去解决这个问题?

编辑:这里是从调试器控制台一些更多的信息

“无法与引导服务器注册None.TestApplication错误:未知错误代码 这通常意味着这个过程的另一个实例已经运行或在debugger.sharedlibrary应用负载规则是挂满 当前语言:汽车;目前Objective-C的 (GDB)

+0

SIGABRT通常意味着程序引发了异常。调试器控制台中应该有更多的信息。您需要编辑您的问题以包含该信息。此外,您可以在'objc_exception_throw'中设置一个断点,以获取引发异常的堆栈跟踪。 – 2012-01-05 20:53:35

+0

谢谢,我添加了一些更多的信息。 – John 2012-01-06 00:37:04

回答

14

线UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));只是意味着一个例外是你的程序的运行过程中引发的这可能从记忆问题到简单的跑步我错误。查看目标调试器控制台;它会告诉你错误发生在哪里。

编辑由于编辑的问题:我已加上iOS模拟器恢复为出厂默认值之前解决这个问题(在打开左上角的“iPhone模拟器”菜单 - >重置内容和设置)。然后退出iOS模拟器和Xcode,然后重新启动计算机。这将摆脱过程的其他实例。

+0

谢谢,我编辑了更多信息的OP。 – John 2012-01-06 00:37:30

+0

针对问题编辑进行了改进 – DGund 2012-01-06 00:46:38

+1

非常感谢。我刚刚那样做,但得到了完全相同的错误。要将模拟器恢复到出厂默认设置,我只需进入“iOS模拟器”下拉菜单,然后选择“重置内容和设置”吧?对不起,如果这是一个愚蠢的问题,我仍然是一个初学者。 – John 2012-01-06 01:09:45

5

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

所以,如果你看到这一点,并没有一些关于在回溯例外,那么我认为你的机器的重新启动可能会解决它。

3

我所做的一切之上,包括重新启动我的电脑,重置模拟器,但没有工作,所以我最后不得不将所有文件从复制到一个单独的文件夹,创建一个新的项目和重建我的笔尖文件,然后复制并粘贴我的单独文件夹中的文件放入我的新项目中。真的很讨厌。如果没有什么适合你们,你的应用程序不是太复杂,这可能是另一种选择。也许不是最好的,但防水工作。

3

我有非常类似的问题,并发现,如果我从LLDB调试器切换到GDB(从产品/方案/编辑计划菜单)的问题消失。值得一试。

1

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

我想在主线程中的任何无限循环最终会被一个未捕获的异常。