新创建的Google Places API密钥无效,请求技术排查
解决Google Places API提示"The provided API key is invalid"的问题
刚创建的API密钥却触发无效提示,结合你Logcat里的REQUEST_DENIED错误,大概率是配置环节的疏漏,咱们一步步排查:
1. 确认Places API服务已启用
新创建的API密钥默认不会自动启用任何Google服务,你需要:
- 进入Google Cloud控制台,找到对应项目
- 在API库中搜索Places API,确保它的状态是「已启用」(而非未启用或仅显示「管理」)
2. 检查API密钥的应用限制配置
如果给密钥设置了应用限制(比如Android应用限制),必须保证配置完全匹配:
- 打开API密钥的编辑页面,查看「应用限制」板块
- 若选择了「Android应用」,需确认:
- 添加的SHA-1指纹是当前调试/发布版本的正确指纹(调试版可通过Android Studio执行
app -> Tasks -> android -> signingReport获取) - 填写的包名和项目
build.gradle中的applicationId完全一致
- 添加的SHA-1指纹是当前调试/发布版本的正确指纹(调试版可通过Android Studio执行
- 测试阶段可以暂时将应用限制改为「无」,验证是否是限制配置导致的问题
3. 验证API密钥的引用正确性
你代码中使用@string/google_place_api引用密钥,需确保:
res/values/strings.xml中已正确定义该字符串,内容是完整的API密钥(无多余空格、换行)- 可临时改为直接写入密钥测试(上线前记得改回字符串资源):
确认是否是资源引用环节出了问题Places.initialize(getApplicationContext(), "你的完整API密钥");
4. 排查Google Play服务兼容性
Logcat中的「The Google Play services resources were not found」提示,可能是版本兼容问题:
- 检查Module级
build.gradle的Places依赖版本,确保使用稳定版(比如implementation 'com.google.android.libraries.places:places:2.5.0') - 测试设备/模拟器需安装最新版Google Play服务,模拟器建议选择带Google Play的系统镜像
5. 确认账号账单状态
Google Places API属于付费服务(含免费额度),若账号未绑定有效支付方式,会直接拒绝请求:
- 进入Google Cloud账单页面,确认已绑定支付方式且账号无欠费情况
另外,你代码里的setTypeFilter(typeFilters.get(0)),TypeFilter.values()中的部分类型可能需要额外配置,但这不是当前密钥无效的直接原因,先解决密钥问题后再调整即可。
内容的提问来源于stack exchange,提问作者user11374813
相关产品推荐
相关产品推荐

