仅在 iOS 17 设备以下遇到错误“线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x0)”

2023-11-30

我刚刚将 XCode 更新到版本 15,遇到此错误(仅限 17 以下的 iOS 版本)

Thread 1: EXC_BAD_ACCESS (code=1, address=0x0)

显示此错误的代码(PathMonitorConectivityProvider.swift):

当我从 XCode 运行代码时(iOS 设备版本是 iOS 16.4),以下代码中出现异常。

import Foundation
import Network

@available(iOS 12, *)
public class PathMonitorConnectivityProvider: NSObject, ConnectivityProvider {

  private let queue = DispatchQueue.global(qos: .background)

  private var _pathMonitor: NWPathMonitor?

  public var currentConnectivityType: ConnectivityType {
    let path = ensurePathMonitor().currentPath
    // .satisfied means that the network is available
    if path.status == .satisfied {
      if path.usesInterfaceType(.wifi) {
        return .wifi
      } else if path.usesInterfaceType(.cellular) {
        return .cellular
      } else if path.usesInterfaceType(.wiredEthernet) {
        // .wiredEthernet is available in simulator
        // but for consistency it is probably correct to report .wifi
        return .wifi
      } else if path.usesInterfaceType(.other) {
        return .other
      }
    }
    return .none
  }

  public var connectivityUpdateHandler: ConnectivityUpdateHandler?

  override init() {
    super.init()
    _ = ensurePathMonitor()
  }

  public func start() {
    _ = ensurePathMonitor()
  }

  public func stop() {
    _pathMonitor?.cancel()
    _pathMonitor = nil
  }

  @discardableResult
  private func ensurePathMonitor() -> NWPathMonitor {
    if (_pathMonitor == nil) {
      let pathMonitor = NWPathMonitor()
      pathMonitor.start(queue: queue)
      pathMonitor.pathUpdateHandler = pathUpdateHandler
      _pathMonitor = pathMonitor
    }
    return _pathMonitor!
  }

  private func pathUpdateHandler(path: NWPath) {
    connectivityUpdateHandler?(currentConnectivityType)
  }
}

错误的屏幕截图

另外 Flutter doctor 结果:

Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 3.13.4, on macOS 13.5.2 22G91 darwin-x64, locale en-LK)
[✓] Android toolchain - develop for Android devices (Android SDK version 33.0.1)
[✓] Xcode - develop for iOS and macOS (Xcode 15.0)
[✓] Chrome - develop for the web
[✓] Android Studio (version 2022.1)
[✓] IntelliJ IDEA Community Edition (version 2022.3.2)
[✓] VS Code (version 1.82.2)
[✓] Connected device (4 available)
[✓] Network resources

• No issues found!

另外AppDelegate.swift:

import UIKit
import Flutter
import GoogleMaps

@UIApplicationMain
@objc class AppDelegate: FlutterAppDelegate {
  override func application(
    _ application: UIApplication,
    didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
  ) -> Bool {
    GMSServices.provideAPIKey("AIzaSyB0SHZK3ngwOu0r26fm3pOrhKumXS7XdHY")
    GeneratedPluginRegistrant.register(with: self)
    return super.application(application, didFinishLaunchingWithOptions: launchOptions)
  }
}

解决方案是升级 Pods 项目上的所有库,包括Flutter from IOS Deployment Target 11.0到版本12.0或更高。 由于某些原因,XCode 15 会将所有版本降级到 9.0 或 11.0,这将导致您的项目混乱并出现类似这样的奇怪错误。

enter image description here

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

仅在 iOS 17 设备以下遇到错误“线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x0)” 的相关文章

随机推荐

  • Deadline_timers 的非阻塞 boost io_service

    阅读 boost asio deadline timer 的文档后 似乎 io service run 和处理程序方法是在同一线程上调用的 在后台线程上运行 io service 对象时 是否有任何方法可以在一个线程上创建计时器 为了好玩和
  • 拉链常见问题

    给定任何容器类型 我们都可以形成 以元素为中心的 Zipper 并且知道该结构是 Comonad 最近对此进行了精彩的详细探讨另一个堆栈溢出问题对于以下类型 data Bin a Branch Bin a a Bin a Leaf a de
  • 通过 FetchContent 安装 protobuf 时如何使用 cmake 命令 protobuf_generate?

    我正在使用 gRPC 编写客户端 服务器 要生成客户端 服务器 protobuf 代码 我需要运行 cmake 命令protobuf generate 如果我事先安装了 protobuf 我就可以访问该命令protobuf generate
  • Silverlight 4 和 Windows Phone 7 的 Bing 地图控件中的交互式图层

    使用 Bing 地图控件时 我的应用程序会添加一个叠加层 在其上将位置标记绘制为椭圆形 每个椭圆都连接到一个 Tap 处理程序 该处理程序在 WP7 模拟器中按预期工作 遗憾的是 HTC 硬件上的情况似乎并非如此 地图本身似乎获取了所有输入
  • 如何将 PHP 字符串传递到 Javascript 函数调用中? [复制]

    这个问题在这里已经有答案了 可能的重复 将 PHP 字符串传递给 Javascript 变量 并转义换行符 所以 本质上我试图从 PHP 页面传递一个字符串作为 javascript 函数的参数 PHP 包含在脚本所在的页面中 但它们位于两
  • 带有行号的 pandas 堆栈

    我有一个 Pandas DataFrame 示例 A B C D 0 0 441040 0 235533 0 899417 1 960367 1 0 701764 2 343389 1 293865 0 556737 2 0 511988
  • 何时使用 L.TileLayer 与 L.tileLayer

    我刚刚使用 Leaflet 为网站构建地图 并注意到要添加平铺层至少可以使用两种方法 L TileLayer and L tileLayer 其名称仅因单个字符的大小写而异 然而 虽然这两种方法返回的对象都可以添加到由L map 返回的对象
  • PHP - CodeIgniter - 为 foreach() 提供的参数无效

    我尝试使用 CodeIgniter 编写一个网站 但 PHP 遇到问题 我确信它是如此简单并且不会错 但我不知道 bug 只是 CodeIgniter 的新手
  • Spring异常时事务回滚

    我正在学习Spring 并且在Spring中的事务处理方面遇到了一些麻烦 这是我的代码 Transactional rollbackFor Exception class public void createGroupStudent Stu
  • 如何使用 purrr map 函数执行逐行 prop.tests 并将结果添加到数据帧?

    我正在尝试解决 R 中的以下问题 我有一个包含两个变量 成功次数和总试验次数 的数据框 A tibble 4 x 2 Success N
  • 如何将国家/地区拨号代码放入 intlTelInput 中的括号中

    我在我的网站上使用 intlTelInput 如何使用括号分隔拨号代码 对于前 这个插件的默认输出是 1202someNumber 我需要 1 202someNum 基于此处的文档表格 https github com jackocnr i
  • Pandas Dataframe 到带分隔符的字符串

    我想将数据框转换为字符串 这个话题如何将 pandas 数据框行转换为逗号分隔的字符串接近我想要的 此解决方案的唯一问题 我有一列 国家 其中包含带有分隔符的字符串 例如 使用此解决方案 数据框正在转换为字符串 但我将 美国 变为 美国 州
  • OpenCV Android 原生代码构建问题

    我正在学习如何使用 OpenCV 编写 C 代码 我想在 Android 中运行它 我使用Android Studio 我创建了一个支持 C 的新简单项目 然后将测试代码添加到 C 文件中 看来是我自己的文件编译和链接的 现在 我认为与我的
  • 确定数据表中的重复项

    我有一个从 CSV 文件加载的数据表 我需要根据两列确定哪些行是重复的 product id and owner org id 在数据表中 一旦确定了这一点 我就可以使用该信息来构建结果 该结果是一个仅包含不唯一行的数据表 以及一个仅包含唯
  • 只需按一下按键即可连续移动?

    我正在尝试用java编写一个程序 该程序涉及通过按一次按键使对象不断移动 想想 Pacman 你按下一次 Pacman 就会继续上升 直到你按下另一个键 如果可能的话 我想让代码保持简单 我原来的动作 一次按键 一次动作 是这样的 publ
  • 将类变量传递给另一个类

    我想将一个类变量传递给另一个类 并使其成为该类的类变量 在以下情况下我将如何执行此操作 public class GLCamTest extends Activity public float array something class G
  • Jena Fuseki Sparql 无查询=错误

    我正在尝试使用这个简单的查询将数据插入 jena fusioni 图中 PREFIX test
  • Android 语音通话记录

    我希望有一些代码能够收到任何传入和传出语音呼叫的通知 我需要获取以下所有内容 如果是来电或去电 拨打的号码或来电显示的电话号码 通话时长 或者是否是未接来电 如果我可以获得更多联系信息 特别是联系人姓名 如果电话号码与手机联系人列表中的某个
  • 具有不同本地名称的 XDocument 重复命名空间

    我有一个 XML 文档 如下所示
  • 仅在 iOS 17 设备以下遇到错误“线程 1:EXC_BAD_ACCESS(代码 = 1,地址 = 0x0)”

    我刚刚将 XCode 更新到版本 15 遇到此错误 仅限 17 以下的 iOS 版本 Thread 1 EXC BAD ACCESS code 1 address 0x0 显示此错误的代码 PathMonitorConectivityPro