【问题标题】:MkMapView Crash iOSMkMapView 崩溃 iOS
【发布时间】:2021-04-17 22:53:49
【问题描述】:

我正在使用 SnapKit 并以编程方式添加 MkMapview。每次我后台应用程序时,它都会因这个异常而崩溃 - std::__1::system_error: mutex lock failed: Invalid argument

我知道必须解除分配您的委托,但此时我什至还没有设置委托,它仍然崩溃。

我确定这是地图,因为如果我注释掉将地图添加到视图的部分,则不会发生崩溃。我还用地图注释掉了任何代码,所以它只是显示地图并在背景上崩溃。我不认为有任何相关的代码可以添加,但是这个

self.view.addSubview(self.map)

self 是 UIView,map 是 MkMapView。

有什么建议吗?

【问题讨论】:

  • 我在后台运行应用程序时也遇到互斥锁错误。我使用情节提要添加了 MKMapView。添加位置权限没有帮助。该应用程序仅在附加到调试器时才会崩溃。当我后台应用程序时,在独立设备上运行不会崩溃。

标签: ios swift uikit mapkit snapkit


【解决方案1】:

尽管它是在 9 个月前发布的,但我找到了解决此问题的方法(解决方法..)。当我使用地图视图进入后台并附加到调试器时,我的应用程序崩溃了。

似乎 mapkit 使用了一些 Metal API,下面可能存在一些问题。您必须禁用运行时 Metal API 检查,它不会崩溃。

转到您的目标设置并在“诊断”选项卡下,取消选中“金属”部分的“API 验证”。

【讨论】:

    【解决方案2】:

    确保您已通过 Core Location 请求位置权限。我在身份验证之前发生了这个崩溃,然后我授予了权限并且它不再崩溃。从 iOS 14 开始很奇怪,而且绝对是一个错误,但是......

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多