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

React Native Expo debug构建MapView显示空白谷歌地图问题

问题根因

这是Expo managed workflow下使用EAS构建时,签名证书和本地Expo Go不一致导致的典型鉴权失败问题:

  • Expo Go中地图功能正常,是因为Expo Go客户端本身使用公开的通用debug签名,和你预先配置的SHA-1指纹匹配,Maps SDK鉴权通过可以正常加载瓦片。
  • EAS构建预览版(包括development build、内部测试版)时,默认会为当前项目自动生成独立的debug签名证书,不会复用Expo Go的通用debug keystore。你之前配置的SHA-1指纹和实际安装包的签名不匹配,Google Maps服务会直接拒绝API请求,表现为地图区域空白、仅显示底部Google Logo。填入任意字符串不崩溃,是因为SDK检测到key存在就不会触发初始化崩溃流程,但鉴权失败自然无法加载地图内容。
  • 32位Windows设备无需安装Android Studio也能获取正确的签名指纹,不需要手动生成keystore。
分步解决方案
  1. 获取EAS构建实际使用的签名证书SHA-1指纹
    在项目根目录打开终端,执行命令:
    eas credentials -p android
    根据交互提示选择你当前使用的预览构建配置,找到对应使用的keystore条目,选择查看证书详情,即可直接获取到正确的SHA-1指纹,全程依赖EAS CLI完成,不需要本地安装安卓开发相关工具。

    注意:如果你选择的是EAS内部分发构建类型,即使配置为debug模式,部分场景下会默认使用你上传的生产签名证书,此时需要提取对应生产证书的SHA-1,不要直接套用通用debug指纹。

  2. 更新Google Cloud API key配置
    回到Google Cloud控制台的Maps SDK for Android密钥配置页:

    • 将上一步拿到的实际签名SHA-1指纹添加到应用限制列表中
    • 确认填写的包名和项目app.json中android.package字段值完全一致,无多余空格、大小写错误
    • 确认Maps SDK for Android已正常启用,账号配额没有超限
    • 配置修改后等待3-5分钟让Google侧同步生效,不要改完立刻测试。
  3. 校验项目配置格式
    打开app.json确认Google Maps API key的配置位置正确,错误的字段层级会导致配置不生效,正确结构参考:

    {
      "expo": {
        "android": {
          "config": {
            "googleMaps": {
              "apiKey": "你的Android端Google Maps API密钥"
            }
          }
        }
      }
    }
    

    不要将Android端的key写到iOS配置段下,也不要拼错字段名。

  4. 重新构建预览版
    执行EAS构建命令生成新的安装包,之前构建的旧包不会同步最新配置,必须重新打包安装后再测试。

额外排查项
  • 若完成以上步骤后地图仍空白,检查项目网络权限配置,确认已授予应用互联网访问权限(managed workflow默认会添加该权限,如果你手动修改过权限列表需要核对)
  • 检查API key的应用限制规则,不要误选仅允许iOS应用调用、或绑定了不属于当前项目的包名
  • 若你在API key上配置了API限制,确认已勾选Maps SDK for Android的调用权限,不要漏选。

内容的提问来源于stack exchange,提问作者G-T

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 22:15:48