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

Expo构建的Android应用中Google Maps崩溃,求排查方案

问题描述

我正在开发一款基于React Native/Expo的应用,需要展示Google Map,核心代码如下:

<MapView
    googleMapsApiKey={process.env.EXPO_GOOGLE_MAPS_API_KEY}
    style={styles.map}
    ref={_map}
    showsUserLocation={true}
    showsMyLocationButton={true}
    minZoomLevel={0}
    maxZoomLevel={20}
    region={{
        ...marker,
        latitudeDelta: 0.016,
        longitudeDelta: 0.003,
    }}
    camera={{
        ...marker,
        zoom: 0,
        altitude: 0,
        pitch: 0,
        heading: 0,
    }}
>

开发模式下一切正常,但通过Expo构建后,每次打开地图应用都会崩溃。我的构建配置(preview环境)如下:

"preview": {
  "env": {
    "EXPO_GOOGLE_MAPS_API_KEY": " [api key string] "
  },
  "developmentClient": false,
  "android": {
    "buildType": "apk"
  }
}

请问是否是API密钥错误导致的?我当前使用的是Maps JavaScript API。

解决方案

是的,问题核心就是API密钥类型错误。React Native/Expo的Google Map组件依赖的是Google Maps Android API(安卓端)和Google Maps iOS SDK(iOS端),你现在用的Maps JavaScript API是给网页端设计的,完全不兼容移动端,这就是构建后崩溃的直接原因。

按以下步骤修复:

  • 登录Google Cloud控制台,找到你的API密钥,禁用Maps JavaScript API,启用Google Maps Android API和Google Maps iOS SDK
  • 修正API密钥的限制配置:
    • 安卓端:添加应用的SHA-1指纹和包名(Expo构建后可在构建日志或Expo控制台获取SHA-1)
    • iOS端:添加应用的Bundle ID
  • 清理构建配置里API密钥前后的多余空格(你的配置里" [api key string] "有空格,会导致密钥识别失败)
  • 调整camera配置里的zoom:0为1-20之间的有效值,极端值可能在生产构建中引发异常
  • 重新构建应用

内容的提问来源于stack exchange,提问作者Andrija Vranić

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:24:57