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
相关产品推荐
相关产品推荐

