簡體   English   中英

奇怪的iOS UIWebView崩潰稱為WTF崩潰

[英]Weird iOS UIWebView Crash called WTF Crash

我在某些屏幕中使用UIWebViews,因為我需要完美的HTML文本解析。

根據崩潰報告,在這些屏幕上發生了大量崩潰,稱為WTF崩潰。 這是那次崩潰的痕跡

Crashed: WebThread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x00000000bbadbeef

Thread : Crashed: WebThread
0  JavaScriptCore                 0x184fd2710 WTFCrash + 72
1  JavaScriptCore                 0x184fd2708 WTFCrash + 64
2  WebCore                        0x1852b7d78 <redacted> + 362
3  WebCore                        0x1852b7bec <redacted> + 44
4  CoreFoundation                 0x1817d8588 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
5  CoreFoundation                 0x1817d632c __CFRunLoopDoObservers + 372
6  CoreFoundation                 0x1817d6674 __CFRunLoopRun + 696
7  CoreFoundation                 0x181705680 CFRunLoopRunSpecific + 384
8  WebCore                        0x1852b5998 <redacted> + 456
9  libsystem_pthread.dylib        0x18148bb28 <redacted> + 156
10 libsystem_pthread.dylib        0x18148ba8c _pthread_start + 154
11 libsystem_pthread.dylib        0x181489028 thread_start + 4

此崩潰沒有操作系統版本或設備關系。

我也不喜歡使用UIWebView。 它像其他所有組件一樣被添加到nib中,在實現文件中,我像下面這樣使用它

self.webView.scrollView.scrollEnabled = NO;
self.webView.scrollView.bounces = NO;
self.webView.opaque = NO;
self.webView.backgroundColor = [UIColor clearColor];
self.webView.delegate = self;
[self.webView loadHTMLString:htmlString baseURL:nil];

關於如何解決WTF崩潰的任何建議?

編輯:這是htmlString的樣子

Printing description of htmlString:
<html><body style="font-family:HelveticaNeue; font-size:10; background-color:#E5E4E4; text-align:left; color:#696969 ">test string</body></html>

我不知道您是如何創建UIWebView的。 但是我遇到了與WTFCrash類似的問題,並且可以通過確保在主線程上創建UIWebView來解決此問題:

- (void)createWebView{
    if (![NSThread isMainThread]) {
        dispatch_async(dispatch_get_main_queue(), ^{
            [self createWebView];
        });
        return;
    }
    self.webView = [[UIWebView alloc] initWithFrame:CGRectMake(0, 0, 320, 320)];
    //Rest of my code
}

您是否正在使用Safari調試網絡視圖? 如果是,退出Safari后崩潰應該消失了。

我在使用WKWebView時也遇到了類似的崩潰,並且我確信同一代碼在3天前可以正常工作。 hlung的評論救了我,您可以在這里找到。

供您參考,以下是我的崩潰日志。

 Exception Type: EXC_BAD_ACCESS (SIGSEGV) Exception Subtype: KERN_INVALID_ADDRESS at 0x00000000dbbdfb10 Triggered by Thread: 0 Filtered syslog: None found Thread 0 Crashed: 0 JavaScriptCore 0x225d74c6 WTF::HashSet<JSC::MarkedArgumentBuffer*, WTF::PtrHash<JSC::MarkedArgumentBuffer*>, WTF::HashTraits<JSC::MarkedArgumentBuffer*> >::remove(JSC::MarkedArgumentBuffer* const&) + 54 1 JavaScriptCore 0x22620b41 JSC::VM::~VM() + 211 2 JavaScriptCore 0x22197e57 JSC::JSLockHolder::~JSLockHolder() + 73 3 JavaScriptCore 0x2248defd JSContextGroupRelease + 61 4 JavaScriptCore 0x2250e37d -[JSVirtualMachine dealloc] + 27 5 libobjc.A.dylib 0x1dac5195 objc_object::sidetable_release(bool) + 239 6 JavaScriptCore 0x2248d261 -[JSContext dealloc] + 125 7 libobjc.A.dylib 0x1dac5195 objc_object::sidetable_release(bool) + 239 8 JavaScriptCore 0x226470af WTF::RunLoop::TimerBase::timerFired(__CFRunLoopTimer*, void*) + 25 9 CoreFoundation 0x1e807357 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 15 10 CoreFoundation 0x1e807029 __CFRunLoopDoTimer + 897 11 CoreFoundation 0x1e8069e1 __CFRunLoopDoTimers + 221 12 CoreFoundation 0x1e804cc5 __CFRunLoopRun + 1365 13 CoreFoundation 0x1e754073 CFRunLoopRunSpecific + 487 14 CoreFoundation 0x1e753e81 CFRunLoopRunInMode + 105 15 GraphicsServices 0x1ff00bfd GSEventRunModal + 157 16 UIKit 0x2390e82f -[UIApplication _run] + 575 17 UIKit 0x23908f61 UIApplicationMain + 151 18 MyApp 0x00488b29 0x2c000 + 4573993 19 libdyld.dylib 0x1df1e50b start + 3 

Web視圖背后的引擎WebKit在看到內存問題時可能會導致崩潰。 您可以通過特殊的十六進制字0x00000000bbadbeef來識別這些0x00000000bbadbeef

您正在訪問的網頁似乎微不足道,因此您遇到問題令人驚訝。 我建議您遵循在以下網址描述的WebKit調試工具: https : //webkit.org/debugging-webkit/#ios-simulator

請使用顯示的任何日志或見解更新您的問題。

這是一個Google Ads問題,已經確定已在10月17日的7.35.0版本和更高版本中得到修復。

您應該能夠解決更新您的廣告連播的問題。

通過Google移動廣告SDK開發人員小組的郵件:

“該問題已由團隊修復,應在即將發布的SDK版本(發行說明)中發布。” (8月20日)

“問題已經解決並且已經生效。” (10月17日)

來源: https //groups.google.com/d/msg/google-admob-ads-sdk/XL35wo6mQts/R2LlGZDxBwAJ

發行說明: https : //developers.google.com/admob/ios/rel-notes

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM