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

使用google_maps_flutter的Flutter应用iOS端点击地图模块闪退求助

问题排查方案

  • 检查iOS定位权限配置
    你使用了location插件获取定位,需要在iOS项目的ios/Runner/Info.plist文件中添加以下权限描述,未配置权限时iOS系统会直接杀死触发权限请求的应用,不会输出堆栈日志:
    <key>NSLocationWhenInUseUsageDescription</key>
    <string>需要使用定位权限来展示您周边的水域信息</string>
    <key>NSLocationAlwaysAndWhenInUseUsageDescription</key>
    <string>需要使用定位权限来展示您周边的水域信息</string>
    
  • 检查iOS最低支持版本配置
    google_maps_flutter 2.0及以上版本要求iOS最低支持版本为11.0,需要确认两处配置:
    1. 打开ios/Podfile,确认首行platform :ios, '11.0'的注释已经移除,版本号不低于11.0
    2. 用Xcode打开iOS项目,确认Runner目标的「Deployment Target」设置为11.0或更高版本
  • 检查Google Maps API密钥配置
    1. 确认Google Cloud后台的iOS类型API密钥已经开通「Google Maps SDK for iOS」权限
    2. 确认密钥绑定的Bundle ID与你项目的iOS Bundle ID完全一致,大小写、符号都不能有差异
  • 补充空值防护逻辑
    你的代码中直接使用locationAsync.data.latitude取值,未做空判断。iOS端定位权限未开启、定位失败等场景下locationAsync.data可能为null,直接取值会触发空指针闪退,建议增加判空逻辑,为空时返回默认坐标或者错误提示。
  • 缩小问题范围定位诱因
    可以先注释掉GoogleMap组件中polygons、polylines的渲染逻辑,仅保留基础地图渲染,如果此时不再闪退,说明是大量点位/图形渲染导致的内存超限闪退,可以做分页加载、可视区域渲染优化。
  • 获取完整闪退日志
    直接用Xcode打开ios/Runner.xcworkspace运行项目,Xcode控制台会输出完整的iOS原生闪退日志,可以精准定位闪退根因,Android Studio的「Lost connection to Device」提示仅能说明应用崩溃,无法展示具体错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 16:51:00