Flutter应用集成Google Maps功能无法正常运行问题求助
Flutter Google Maps集成异常排查方案
1. 优先排查Google Maps API配置问题
- 检查Android/iOS端的API密钥是否正确配置,密钥是否开启了Google Maps Android API、Google Maps SDK for iOS、Places API(用到地点自动补全必须开启)权限
- 确认密钥的包名、Bundle ID 匹配当前应用的包名,没有被限制IP或应用访问范围
- 查看Google Cloud控制台对应API的报错日志,可直接定位是配额不足还是权限拒绝问题
2. 应用权限配置检查
- Android端
AndroidManifest.xml必须添加以下权限:
<uses-permission android:name="android.permission.INTERNET" /> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
- iOS端
Info.plist必须添加定位权限说明:
<key>NSLocationWhenInUseUsageDescription</key> <string>需要定位权限来展示周边药店</string>
- 应用启动后要先动态请求定位权限,权限未授予时地图加载和定位功能都会异常
3. 现有代码逻辑问题修复
- 你定义的全局
GoogleMapController没有赋值,需要在_onMapCreated方法里完成赋值,否则调用changeMapCamera时会因为空指针崩溃:
Future<void> _onMapCreated(GoogleMapController controller) async { // 新增这行完成全局变量赋值 this.controller = controller; final mypharmacies = await pharmacies.getPharmacies(); // 原有逻辑保持不变 }
- 给
pharmacies.getPharmacies()接口加日志打印,确认接口正常返回数据,返回的药店经纬度格式正确没有空值 - 自动补全的
suggetions列表是异步加载的,首次进入页面时列表为空,自动补全组件会没有提示,建议增加加载状态,等接口请求完成后再初始化自动补全组件
4. 依赖与环境排查
- 确认
pubspec.yaml里google_maps_flutter依赖版本和你的Flutter版本兼容 - Android端要升级AGP到7.0以上,配置
android.useAndroidX=true - iOS端执行
pod install后再编译,确认依赖已经正确安装
内容的提问来源于stack exchange,提问作者Ilyass El
相关产品推荐
相关产品推荐

