You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flutter中Geolocator报错:命名参数desiredAccuracy未定义

问题排查:'desiredAccuracy' 参数未定义错误

直接语法错误

看你代码里的这一行:

desiredAccuracy //here the error: LocationAccuracy.high,

这里存在两个明显问题:

  • 命名参数写法错误:Dart的命名参数必须遵循 参数名: 值 的格式,你漏写了冒号和正确的赋值逻辑。
  • 注释位置错误:你把参数值LocationAccuracy.high用注释完全包裹,导致编译器无法识别参数的有效赋值,反而将desiredAccuracy判定为未定义的标识符。

可能的版本适配问题

如果修正语法后仍报错,大概率是geolocator包版本更新导致参数名变更:

  • 旧版geolocator的getPositionStream方法使用desiredAccuracy作为参数名,但在10.x及以上的新版本中,该参数已更名为accuracy。

修复方案

  1. 先修正语法错误,调整注释位置并补全参数赋值:
    _positionStream = Geolocator.getPositionStream(
      desiredAccuracy: LocationAccuracy.high, // 修正语法,将参数值移出注释
    ).listen((Position position) {
      // ... 后续代码逻辑
    });
    
  2. 若修正语法后仍报错,检查pubspec.yaml中的geolocator版本:
    • 若使用的是新版本,将参数名替换为accuracy:
      _positionStream = Geolocator.getPositionStream(
        accuracy: LocationAccuracy.high,
      ).listen((Position position) {
        // ... 后续代码逻辑
      });
      

内容的提问来源于stack exchange,提问作者user19908504

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 23:25:59