Expo+React Native Maps安卓端Google Maps API Key缺失问题排查
解决方案
1. 修正环境变量引用的名称错误
你在本地.env和EAS Secret中配置的变量是EXPO_PUBLIC_GOOGLE_MAPS_ANDROID_APIKEY_PROD,但app.config里引用的是process.env.EXPO_PUBLIC_GOOGLE_MAPS_APIKEY_PROD,变量名少了ANDROID字段,这是导致Key无法读取的核心问题。修改app.config配置:
android: { config: { googleMaps: { apiKey: process.env.EXPO_PUBLIC_GOOGLE_MAPS_ANDROID_APIKEY_PROD, }, }, },
2. 验证EAS Secret的配置有效性
- 确认EAS Secret的**作用范围(scope)**设置为
project,而非account,确保当前构建的项目能读取到该Secret。 - 检查Secret的名称完全匹配
EXPO_PUBLIC_GOOGLE_MAPS_ANDROID_APIKEY_PROD,注意大小写严格一致。
3. 本地预校验配置是否生效
运行命令expo config --type public,查看输出内容里的android.config.googleMaps.apiKey是否正确显示你的API Key:
- 如果本地输出为空,检查根目录的.env文件是否正确放置,且未被.gitignore排除;同时重启Expo开发服务器,确保环境变量重新加载。
- 本地测试时可以用临时的测试API Key,正式构建依赖EAS Secret即可。
4. 硬编码Key排查环境变量问题
暂时在app.config里直接写入API Key,重新执行EAS构建:
android: { config: { googleMaps: { apiKey: "你的Google Maps API Key", }, }, },
- 若构建后地图正常显示,说明是环境变量注入环节出问题,回到步骤2检查EAS Secret配置。
- 若仍报错,检查Google Cloud控制台:确保该API Key已启用Maps SDK for Android服务,且Key的限制规则(包名、SHA-1签名)与EAS构建的应用完全匹配。
5. 排除配置冲突
- 不要手动修改AndroidManifest.xml添加Google Maps的meta-data字段,Expo会通过app.config自动生成,手动添加会导致冲突。
- 你的地图组件代码中针对Android指定
PROVIDER_GOOGLE的逻辑是正确的,无需调整。
内容的提问来源于stack exchange,提问作者Phil Lucks
相关产品推荐
相关产品推荐

