2012-01-05 107 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再次被調用進入無限循環。移動這段代碼解決了這個錯誤。

我想在主線程中的任何無限循環最終會被一個未捕獲的異常。