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

Expo构建开发APK时react-native-maps不显示,Expo Go运行正常求助

解决Expo开发构建APK中react-native-maps仅显示Google Logo的问题

核心排查与解决步骤

1. 确认SHA-1密钥与开发构建APK匹配

Expo Go使用的是Expo官方调试密钥,而你自行构建的开发APK会调用本地debug.keystore的密钥,默认模板提供的SHA-1不一定和你的本地密钥一致:

  • 获取本地调试密钥的SHA-1:
    # macOS/Linux
    keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
    
    # Windows
    keytool -list -v -keystore C:\Users\<你的用户名>\.android\debug.keystore -alias androiddebugkey -storepass android -keypass android
    
  • 将获取到的SHA-1添加到Google Cloud控制台对应API密钥的限制列表中,确保和你的APP包名绑定。

2. 检查Google Cloud控制台配置

  • 确认已启用Maps SDK for Android服务,未启用的话地图请求会直接被拒绝。
  • 检查API密钥的应用限制:必须设置正确的APP包名(和app.json中expo.android.package字段一致),以及对应的SHA-1密钥。限制规则错误或缺失会导致地图加载失败。

3. 验证app.json配置正确性

确保app.json中的Google Maps API Key配置无拼写错误,示例如下:

{
  "expo": {
    "name": "YourApp",
    "slug": "your-app",
    "android": {
      "package": "com.yourdomain.yourapp", // 需与Google Cloud配置的包名完全一致
      "config": {
        "googleMaps": {
          "apiKey": "YOUR_GOOGLE_MAPS_API_KEY"
        }
      }
    }
  }
}

4. 排查开发构建的签名配置

如果使用EAS Build构建开发APK,检查eas.json中的开发环境配置是否指定了正确的调试密钥。若自定义了签名文件,需将对应SHA-1同步添加到Google Cloud。

5. 通过设备日志定位具体错误

连接设备后执行以下命令过滤Google Maps相关日志,直接获取错误原因:

adb logcat | grep -i "google maps"

日志会明确提示问题,比如API密钥无效、服务未启用、权限不足等,是最精准的问题定位方式。

修改Google Cloud配置后需等待5-10分钟让配置生效,之后重新构建开发APK测试即可。

内容的提问来源于stack exchange,提问作者Palani Pavan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 19:27:35