使用Flutter Google Maps Place Picker插件遇API密钥授权错误求助
解决Google Maps Place Picker MB插件API密钥授权错误的方案
排查方向1:检查API密钥的应用限制
- 确认Google Cloud控制台里的API密钥是否设置了应用限制(比如Android包名+SHA-1、iOS Bundle ID),如果有设置,必须保证你的Flutter项目的包名、SHA-1指纹和控制台配置的完全匹配,哪怕一个字符错了都会导致授权失败。
- 要是暂时想快速排查,可以先把应用限制改成「无限制」,测试是否能正常使用,确认是限制问题后再重新配置正确的规则。
排查方向2:核实服务启用与计费状态
- 登录Google Cloud控制台,进入API库,逐一确认Geocoding API、Places API、Maps SDK for Android、Maps SDK for iOS这四项都处于启用状态(注意Android和iOS的Maps SDK是分开的两个服务,别漏了),且都属于当前使用的项目。
- 重点检查计费状态:这些API必须启用计费才能正常工作,哪怕是用免费额度,也要确保你的项目已经绑定了有效的计费账户,没有欠费或未开通计费的情况。
排查方向3:确认项目中API密钥配置正确
- 核对Flutter项目里配置的API密钥和控制台里的完全一致,别出现拼写错误、多余空格或者复制漏了字符的情况。
- 分别检查Android和iOS端的配置:
- Android:
AndroidManifest.xml里的com.google.android.geo.API_KEY元数据值要准确; - iOS:
Info.plist中的GoogleMapsAPIKey要正确,同时别忘了配置NSLocationWhenInUseUsageDescription等位置权限。
- Android:
排查方向4:检查API调用的具体权限
- 插件可能会调用Places API的子功能(比如Autocomplete、Place Details),虽然启用Places API通常包含这些,但可以去控制台的Places API详情页确认这些子服务的权限是否开放。
- 查看Google Cloud的API使用报告,找到报错对应的API请求记录,明确是哪一个接口被拒绝,针对性检查该接口的启用状态和密钥权限。
排查方向5:清理缓存与网络检查
- 执行
flutter clean清除项目构建缓存,然后重新编译运行项目,避免旧配置残留导致的问题。 - 确认设备网络可以正常访问Google的API服务(国内环境可能需要科学上网),网络不通也会触发类似的授权错误提示。
内容的提问来源于stack exchange,提问作者shakti goyal
相关产品推荐
相关产品推荐

