Flutter中Geolocator报错:命名参数desiredAccuracy未定义
问题排查:'desiredAccuracy' 参数未定义错误
直接语法错误
看你代码里的这一行:
desiredAccuracy //here the error: LocationAccuracy.high,
这里存在两个明显问题:
- 命名参数写法错误:Dart的命名参数必须遵循
参数名: 值的格式,你漏写了冒号和正确的赋值逻辑。 - 注释位置错误:你把参数值
LocationAccuracy.high用注释完全包裹,导致编译器无法识别参数的有效赋值,反而将desiredAccuracy判定为未定义的标识符。
可能的版本适配问题
如果修正语法后仍报错,大概率是geolocator包版本更新导致参数名变更:
- 旧版
geolocator的getPositionStream方法使用desiredAccuracy作为参数名,但在10.x及以上的新版本中,该参数已更名为accuracy。
修复方案
- 先修正语法错误,调整注释位置并补全参数赋值:
_positionStream = Geolocator.getPositionStream( desiredAccuracy: LocationAccuracy.high, // 修正语法,将参数值移出注释 ).listen((Position position) { // ... 后续代码逻辑 }); - 若修正语法后仍报错,检查
pubspec.yaml中的geolocator版本:- 若使用的是新版本,将参数名替换为
accuracy:_positionStream = Geolocator.getPositionStream( accuracy: LocationAccuracy.high, ).listen((Position position) { // ... 后续代码逻辑 });
- 若使用的是新版本,将参数名替换为
内容的提问来源于stack exchange,提问作者user19908504
相关产品推荐
相关产品推荐

