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

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 21:18:03