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

Flutter发布版Google Maps SDK无法显示地图及API授权问题求助

Flutter Google Maps集成与后端API密钥冲突的解决办法

问题根源

你现在的矛盾在于同一个API密钥既要给前端Flutter的Android APK用,又要给后端服务器调用,但之前只配置了单一来源的授权规则:

  • 只设IP授权时,前端APK的请求来自用户手机的公网IP,不在你服务器的IP白名单里,所以地图加载不出来;
  • 只设Android应用授权时,后端服务器的请求没带Android应用的包名和SHA-1信息,直接被Google的授权校验拦下来了。

具体解决步骤

1. 给API密钥同时配置两种授权规则

打开Google Cloud控制台的API密钥管理页面,找到你使用的密钥,在「应用限制」里同时添加两种规则:

  • Android应用:填上你的Flutter应用包名,再加上调试和发布环境的SHA-1指纹(发布版的SHA-1要用签名APK的密钥库生成)
  • IP地址:把后端服务器的公网IP加进去

这样配置后,这个API密钥就同时认可Android应用和服务器IP的请求了。

2. 确认发布APK的SHA-1没出错

生成发布版SHA-1的命令:

keytool -list -v -keystore 你的密钥库路径.jks -alias 你的密钥别名

把这个SHA-1和包名准确填到Google Cloud的Android授权条目里,别打错字,大小写也得完全匹配。

3. 后端请求的小检查

  • 后端调用Google Maps API时,不用管Referer头(错误提示里的empty referer是正常的,服务器请求不需要这个),只要服务器IP在白名单里就行
  • 确认后端用的API密钥和前端是同一个,而且这个密钥已经开启了需要的API服务(比如你后端用的是Geocoding API,就得在控制台启用它)

4. 最后核对Flutter配置

构建APK前,检查android/app/src/main/AndroidManifest.xml里的API密钥配置是否正确:

<meta-data
    android:name="com.google.android.geo.API_KEY"
    android:value="你的API密钥"/>

另外,Google Cloud的授权规则更新后可能要等几分钟才生效,改完别着急测试,等个两三分钟再试。

内容的提问来源于stack exchange,提问作者Fedy Belaid

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.28 05:22:37