2012-01-05 75 views
9

Mỗi khi tôi chạy ứng dụng của mình trên trình mô phỏng iPad, nó hoạt động hoàn hảo. Nhưng, khi tôi chạy nó trên giả lập iPhone, khi tôi nhấp vào nút home, tôi nhận được một lỗi trong Xcode trong tập tin main.m của tôi, nói rằng "Chủ đề 1: Chương trình nhận được tín hiệu: SIGABRT". Làm nổi bật dòng này trong mã main.m của tôi: return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));Xcode 4.2 Lỗi SIGABRT

Vấn đề này không xảy ra khi tôi nhấn nút home trên mô phỏng iPad. Tôi đã thực hiện rất nhiều nghiên cứu ở đây về lỗi này, nhưng không có gì hữu ích dường như để bật lên. Có ai biết làm thế nào để đi về sửa chữa này?

Edit: đây là một số thông tin hơn từ debugger console

"Không thể đăng ký None.TestApplication với máy chủ bootstrap Lỗi:.. Mã lỗi chưa biết Điều này thường có nghĩa là một ví dụ của quá trình này là đã chạy hoặc được treo trong debugger.sharedlibrary apply-tải quy định tất cả ngôn ngữ hiện tại: auto; hiện mục tiêu-c (gdb)

+0

SIGABRT thường có nghĩa là chương trình đã ném một ngoại lệ. Nên có thêm thông tin trong bảng điều khiển trình gỡ lỗi. Bạn cần chỉnh sửa câu hỏi của mình để bao gồm thông tin đó. Ngoài ra, bạn có thể đặt một điểm ngắt trong 'objc_exception_throw' để có được dấu vết ngăn xếp, nơi ngoại lệ được ném. –

+0

Cảm ơn, tôi đã thêm một số thông tin khác. – John

Trả lời

14

dòng UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); chỉ có nghĩa là một ngoại lệ được ném trong các hoạt động của chương trình của bạn Điều này có thể từ một vấn đề bộ nhớ, đến một runti đơn giản tôi lỗi. Nhìn vào bảng điều khiển trình gỡ lỗi mục tiêu; nó sẽ cho bạn biết nơi xảy ra lỗi.

Sửa do cho câu hỏi đã chỉnh sửa: tôi đã giải quyết câu hỏi này trước bằng cách khôi phục mô phỏng iOS về mặc định (Mở "iOS Simulator" Menu ở phía trên bên trái -> Reset Cài đặt nội dung và). Sau đó thoát khỏi trình mô phỏng iOS và Xcode, sau đó khởi động lại máy tính của bạn. Điều này sẽ loại bỏ trường hợp khác của quá trình.

+0

Cảm ơn, tôi đã chỉnh sửa OP với nhiều thông tin hơn. – John

+0

Được cải thiện cho các chỉnh sửa câu hỏi – DGund

+1

Cảm ơn bạn rất nhiều. Tôi chỉ làm điều đó, nhưng có lỗi chính xác. Để khôi phục trình mô phỏng về mặc định của nhà sản xuất, tôi chỉ cần truy cập trình đơn thả xuống "Trình mô phỏng iOS" và chọn "Đặt lại nội dung và cài đặt" phải không? Xin lỗi nếu đây là một câu hỏi ngớ ngẩn, tôi vẫn là người mới bắt đầu. – John

5

Tôi chỉ gặp vấn đề tương tự (lãng phí khoảng 2 giờ đồng hồ trên thực tế!). Không có ngoại lệ nào. Cuối cùng tôi tình cờ gặp một câu trả lời như thế này. Đặt lại và khởi động lại trình mô phỏng và XCode không xóa nó cho tôi, nhưng khởi động lại đã làm.

Vì vậy, nếu bạn thấy điều này, và không có điều gì đó về ngoại lệ trong backtrace, sau đó tôi nghĩ rằng một khởi động lại máy tính của bạn có khả năng sửa chữa nó.

3

Tôi đã làm tất cả trên, bao gồm khởi động lại máy tính của tôi, đặt giả lập nhưng không làm việc vì vậy tôi đã kết thúc phải sao chép tất cả các file vào một thư mục riêng biệt, tạo một dự án mới và xây dựng lại tập tin nib của tôi và sau đó sao chép và dán từ các tệp trong thư mục riêng của tôi vào dự án mới của tôi. Thực sự khá khó chịu. Nếu không có gì phù hợp với bạn và ứng dụng của bạn không quá phức tạp, thì đây có thể là một giải pháp thay thế. Có lẽ không phải là tốt nhất nhưng một bằng chứng làm việc một nước.

3

Tôi đã gặp sự cố rất giống nhau và thấy rằng nếu tôi chuyển từ trình gỡ lỗi LLDB sang GDB (từ trình đơn Đề án Sản phẩm/Đề án/Chỉnh sửa) thì vấn đề sẽ biến mất. Đáng thử.

1

Trong trường hợp của tôi, tôi đã có một số mã trong viewDidLayoutSubviews, bố cục được cập nhật và gây ra viewDidLayoutSubviews để được gọi lại sẽ đi vào vòng lặp vô hạn. Di chuyển mã này đã giải quyết lỗi này.

Tôi cho rằng bất kỳ vòng lặp vô hạn nào trên sợi chính sẽ kết thúc là ngoại lệ không bị bắt.

Các vấn đề liên quan