Flutter实现Google Places自动补全表单遇到两类报错求助
错误1:_RegisterScreen2State类型中未定义方法'GoogleMapPlaces'
解决步骤:
- 修正拼写错误:initState中调用的类名
GoogleMapPlaces拼写有误,正确类名为GoogleMapsPlaces,和你声明变量时的类名保持一致即可。 - 补充导包:在文件头部添加导入语句:
import 'package:google_maps_webservice/places.dart';
- 冗余代码清理:你已经在声明
_places变量时直接完成了初始化,initState中的赋值代码属于重复操作,可以直接删除。
错误2:出现意外文本'late'
late是Dart 2.12.0版本以上(空安全版本)才支持的语法关键字,报错是因为你项目的Dart SDK最低版本约束低于2.12.0,两种解决方式二选一即可:
- 升级SDK版本:打开项目根目录的
pubspec.yaml文件,修改环境配置如下:
environment: sdk: '>=2.12.0 <3.0.0'
修改后执行flutter pub get重新拉取依赖即可生效。
- 去掉
late修饰:如果你不需要使用空安全特性,直接把变量声明代码中的late关键字删除即可,修改后代码为:
GoogleMapsPlaces _places = GoogleMapsPlaces(apiKey: kGoogleApiKey);
额外注意事项
你代码中kGoogleApiKey赋值为"MY IPA KEY"属于笔误,需要替换为你自己申请的有效Google Places API密钥,否则功能无法正常运行。
内容的提问来源于stack exchange,提问作者Yanis Belazzoug
相关产品推荐
相关产品推荐

