WebThread:signal SIGABRT 和 libc++abi.dylib:terminating with uncaught
今天遇到一個很頑固的bug,解決之前都覺得很難,但是搞定之後,才恍然大悟,原來如此簡單,
今天的問題是:日誌裡只顯示libc++abi.dylib: terminating with uncaught exception of type NSException這個,其他資訊一點都沒有,然後各種除錯,也就多了這麼一條WebThread : signal SIGABRT,我完全懵了,一點都不知道是什麼問題,
問題背景:app裡有一個活動頁面是h5的頁面,然後通過點選h5頁面裡的註冊和登入按鈕,讓頁面跳到原生的app的登陸和註冊頁面進行下面的操作,因為此前做過其他的類似的功能的都沒問題,很自然的覺得肯定也是沒問題的,結果就給我報了錯誤,錯誤停留在使用者名稱的那個textField那裡,我奇怪的很,從app原生頁面進入註冊和登入頁面沒一點問題,但是從h5頁面進入的話就會報錯,我就奇了怪了不清楚為什麼會這樣,並且錯誤提示就是上面那兩個,沒有任何的多餘資訊,
解決辦法:我各種百度看到好多人都是說 什麼 xib 連線不對 ,物件重複釋放等等這些解決方法,我就奇了怪了 我是純程式碼寫的完全沒有xib根本不會存在連線的問題,物件也沒有重複釋放,我完全搞不懂狀況,各種部落格都看過就是沒辦法,最後突然想到一個辦法 不知道行不行 只能試一試了,就自己寫了try catch方法搞,方法如下:
@try{
//這裡寫你的造成app閃退的程式碼
}
@catch
(NSException *exception) {
NSLog(@"exception:%@"
, exception);
}
@finally {
}
然後再次執行程式到了這裡依然會崩潰,點選跳過斷點(有時候可能要多點幾次),然後就會發現日誌欄裡出現了新的關鍵的日誌如下:
-[RegistViewController phoneField] [第139行] exception:Only run on the main thread!
一看就明白了,意思是要在主執行緒裡執行(這才是關鍵日誌),後來經過修改就可以搞定了,
最後我想了想 原因應該是 UITextField 這種UI控制元件必須要在主執行緒裡重新整理的,而我從h5跳到原生頁面是開了子執行緒去跑的,所以有問題,改完之後就沒問題了,希望能幫到一些和我犯一樣錯誤的同學吧,畢竟 這種問題不容易搞,錯誤日誌資訊很少,沒有重要資訊,很麻煩,,,
相關文章
- *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[APPException
- Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'unable to deq...APPException
- iOS-程式錯誤導致App閃退了怎麼辦?Terminating app due to uncaught exception...iOSAPPException
- Uncaught TypeError: $(...).attr(...) is undefinedErrorUndefined
- Uncaught TypeError: i is not a functionErrorFunction
- iOS Mach異常和signal訊號iOSMac
- Qt的Signal和Slot機制(二)QT
- signal協議協議
- Uncaught Error: Cannot instantiate interfaceError
- Uncaught SyntaxError: Unexpected token <反思Error
- jQuery報錯:Uncaught ReferenceError: $ is not definedjQueryError
- Fatal error: Uncaught PDOException: could not find driverErrorException
- Uncaught TypeError: Object # has no method 'load'ErrorObject
- golang處理signalGolang
- Linux Signal 示例Linux
- mysqld got signal 8MySqlGo
- signal raise alarm用法AI
- Namespoace Terminating 解決辦法
- 完美解決 Uncaught SyntaxError: Unexpected token ‘<‘Error
- 詳解Condition的await和signal等待/通知機制AI
- Close the Database by Terminating the Instance (304)Database
- echarts:Uncaught TypeError: Cannot read property '0' of undefinedEchartsErrorUndefined
- 系統程式設計-訊號-總體概述和signal基本使用程式設計
- os/signal學習筆記筆記
- python 之訊號SignalPython
- wifi管理神器:WiFi Signal MacWiFiMac
- <摘錄>linux signal 列表Linux
- Linux 下 signal 機制Linux
- 【RAC】PMON: terminating the instance due to error 481Error
- Uncaught SyntaxError: Identifier 'Geometry' has already been declaredErrorIDE
- Uncaught TypeError: Object [object Object] has no method 'xxx'ErrorObject
- ProTable 報錯Uncaught RangeError: Maximum call stack size exceededError
- Signal:更多前端框架的選擇前端框架
- linux signal函式詳解Linux函式
- The Secret Mixed-Signal Life of PWM Peripherals
- (slave不停restart)mysqld got signal 11RESTMySqlGo
- Linux訊號(signal)機制Linux
- js中Uncaught RangeError: Maximum call stack size exceeded錯誤JSError