Expo开发构建报错API key not found,已配置密钥与SHA-1仍未解决求方案
解决方案:API Key 未找到报错排查
1. 确认app.json及原生配置的正确性
- 检查
app.json里的expo.android.config.googleMaps.apiKey字段是否准确,示例配置:{ "expo": { "android": { "config": { "googleMaps": { "apiKey": "你的实际API密钥" } } } } } - 若使用bare workflow(原生项目),需额外检查
AndroidManifest.xml中的meta-data声明,确保名称和值无拼写错误:<meta-data android:name="com.google.android.geo.API_KEY" android:value="你的实际API_KEY"/>
2. 验证SHA-1与API密钥的绑定
- 确认谷歌凭据中绑定的SHA-1是当前使用的签名指纹:
- 调试版:通过命令
keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android获取 - 发布版:使用正式打包密钥库生成对应SHA-1
- 调试版:通过命令
- 检查谷歌云控制台中,该API密钥已启用Maps SDK for Android服务,未启用会直接导致密钥无效。
3. 清理缓存并重新构建
- 清除Expo缓存:执行
expo r -c或npx expo start --clear - 原生项目需执行
./gradlew clean(Android),然后重新构建 - 卸载设备上的旧应用,避免缓存的旧配置干扰新安装包
4. 检查API密钥的限制规则
- 应用限制需选择Android应用,并准确填写包名和对应的SHA-1,不要设置IP限制(Android应用不需要)
- 确认API限制仅启用了所需服务(如Maps SDK for Android、Geocoding API等),错误的限制会导致访问被拒绝
5. 验证密钥本身的有效性
- 在谷歌云控制台凭据页面确认密钥状态为活跃,未被禁用
- 发送以下请求验证密钥可用性(替换
YOUR_API_KEY):
若返回正常JSON结果,说明密钥有效,问题出在项目配置或绑定信息。GET https://maps.googleapis.com/maps/api/geocode/json?address=New+York&key=YOUR_API_KEY
内容的提问来源于stack exchange,提问作者Abdul Hannan
相关产品推荐
相关产品推荐

