【问题标题】:Crashed: WebThread - EXC_BAD_ACCESS KERN_INVALID_ADDRESS崩溃:WebThread - EXC_BAD_ACCESS KERN_INVALID_ADDRESS
【发布时间】:2017-04-02 18:06:08
【问题描述】:

自 2016 年 11 月 8 日以来,我们发现来自 WebThread 的崩溃突然增加。我们不知道导致崩溃的原因。

我们在应用中确实有网络文章和广告。我们没有任何应用发布。网络或广告没有显着变化。

由于崩溃发生在没有文章的屏幕上,我们认为它发生在广告上。

还有其他人看到吗?有什么想法,想法,什么?

堆栈跟踪:

Crashed: WebThread
0  WebCore                        0x184b7e47c WTF::HashMap<WTF::String, WebCore::ApplicationCacheGroup*, WTF::StringHash, WTF::HashTraits<WTF::String>, WTF::HashTraits<WebCore::ApplicationCacheGroup*> >::remove(WTF::String const&) + 48
1  WebCore                        0x184b7abbc WebCore::ApplicationCacheStorage::cacheGroupDestroyed(WebCore::ApplicationCacheGroup*) + 52
2  WebCore                        0x184b7abbc WebCore::ApplicationCacheStorage::cacheGroupDestroyed(WebCore::ApplicationCacheGroup*) + 52
3  WebCore                        0x184b70628 WebCore::ApplicationCacheGroup::~ApplicationCacheGroup() + 56
4  WebCore                        0x184b70b10 WebCore::ApplicationCacheGroup::~ApplicationCacheGroup() + 12
5  WebCore                        0x184b72334 WebCore::ApplicationCacheGroup::disassociateDocumentLoader(WebCore::DocumentLoader*) + 184
6  WebCore                        0x184a024a0 WebCore::ApplicationCacheHost::~ApplicationCacheHost() + 48
7  WebCore                        0x184a01ad0 WebCore::DocumentLoader::~DocumentLoader() + 168
8  WebKitLegacy                   0x185976ba8 WebDocumentLoaderMac::~WebDocumentLoaderMac() + 84
9  WebCore                        0x184e30a78 WebCore::FrameLoader::detachFromParent() + 324
10 WebKitLegacy                   0x1859e0b08 __29-[WebView(WebPrivate) _close]_block_invoke + 348
11 WebCore                        0x1857842c4 HandleRunSource(void*) + 368
12 CoreFoundation                 0x180ab509c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
13 CoreFoundation                 0x180ab4ab0 __CFRunLoopDoSources0 + 412
14 CoreFoundation                 0x180ab2830 __CFRunLoopRun + 724
15 CoreFoundation                 0x1809dcc50 CFRunLoopRunSpecific + 384
16 WebCore                        0x1849ce108 RunWebThread(void*) + 456
17 libsystem_pthread.dylib        0x180763b28 _pthread_body + 156
18 libsystem_pthread.dylib        0x180763a8c _pthread_body + 154
19 libsystem_pthread.dylib        0x180761028 thread_start + 4

【问题讨论】:

  • 您是否使用第三方广告框架/SDK?
  • 你是在主线程上创建 UIWebView 吗?如果没有,请尝试一下。
  • @shallowThought 是的,我们正在使用 DFP 和 FB 广告网络。是的,我们正在调查广告数据。
  • @MikeJRamsey56 我们在主线程上使用 webview。你知道这个错误是否只针对uiwebview吗?因为我们被转移到 wkwebview 这让我们知道它确实来自 3rd 方 sdk 之类的广告。
  • 我们在 2017 年 8 月 18 日 00:00 UTC 开始出现这样的崩溃。您找到任何解决方案了吗?我们认为它以某种方式与 Google Ads SDK 相关联,但禁用 google 广告并不能完全解决问题。

标签: ios uiwebview crash webkit wkwebview


【解决方案1】:

两个思路的两个分支:

https://stackoverflow.com/a/32078697/3419541

可能是用户在尝试发送委托回调之前关闭了 Web 视图,并且由于它不存在而崩溃。

https://stackoverflow.com/a/31673840/3419541

猜测资源的缓存有问题。

【讨论】:

  • 正如我在问题中所说的 - 我们看到没有网络视图的崩溃。崩溃不仅限于应用程序 WebView。此外,我们正在停止 webview 加载并删除委托。
【解决方案2】:

简单地说,您遇到的崩溃是由于内存泄漏。

变量或对象试图访问受限内存,这将导致此崩溃。 我的猜测是您使用的其中一个广告框架/API 无法处理 2016 年 10 月 31 日发布的 iOS 10.1.1(Build 14B100)更新。这可能是您崩溃的原因.

我还想到,这似乎是在某种对关闭/退出函数的调用期间发生的。如果是这样,确保您正在正确地释放对象、变量和任何其他已分配内存的东西。如果您的代码或程序以正确的方式发布所有内容,那么是广告框架/API 导致了您的问题。

干杯!

【讨论】:

  • 我们看到所有 iOS 版本都出现崩溃。我们确实检查了内存泄漏和内存图分析,一切似乎都很好。
【解决方案3】:

回答我自己的问题以添加比评论区更多的细节。
没有标记为已回答,因为我没有解决方案。

很遗憾,我们无法解决问题。幸运的是,崩溃率在 2-3 天后下降。

花了 3 天后,我们确定它与 Google Ads 相关。但是,为什么崩溃率会上升和下降对我们来说仍然是一个谜。

一些注释/结论:

  • 我们在请求/处理广告时是否在做一些愚蠢的事情?
    • 有可能,但可能性很小,因为它发生在现有的稳定版本中。
  • 这是否发生在特定广告上?
    • 崩溃率下降是因为我们不再投放该广告了吗?
  • GoogleAds 团队前来救援,却装作若无其事?因为... :)
  • 不是新问题 - Crashlytics 显示此类崩溃的第一次发生是在几个月前。

【讨论】:

    猜你喜欢
    • 2023-03-23
    • 1970-01-01
    • 2021-09-29
    • 2015-04-17
    • 1970-01-01
    • 1970-01-01
    • 2014-12-15
    • 2021-03-07
    • 2014-07-13
    相关资源
    最近更新 更多