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

Android应用集成Google Places API遇9008错误求助

解决Google Places API的PLACES_API_INVALID_APP(错误码9008)问题

这个错误码9008本质上就是你的API密钥的Android应用限制和当前运行的App不匹配导致的——我帮你梳理几个最容易踩坑的排查点,结合你已经做的操作,应该能快速解决:

  1. 把SHA-1指纹的核对做到极致
    很多人栽在debug和release指纹搞混,或者忽略了Google Play应用签名的特殊情况:

    • 如果你用Android Studio默认的debug签名,用这个命令生成绝对准确的SHA-1:
      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
      
    • 发布版的话,用你自己的签名文件生成:
      keytool -list -v -keystore /path/to/your/release.keystore -alias your-alias
      
    • 要是你开启了Google Play应用签名,必须去Google Play控制台的「应用签名」页面,复制「应用签名密钥」的SHA-1,而不是你本地的上传密钥——这是超级容易被忽略的点!
  2. 包名必须完全丝毫不差
    检查AndroidManifest.xml里的package属性(比如com.yourcompany.yourapp),和Google开发者控制台里填写的包名要完全一致:大小写、连字符、后缀一个都不能错。如果你的App有多个productFlavors,每个变种的包名可能不同,要分别添加对应的包名+SHA-1组合。

  3. 给Google服务器一点同步时间
    每次在开发者控制台修改密钥限制后,Google的服务器需要5-10分钟才能同步生效,刚改完就立刻测试大概率还是会报错,耐心等一会儿再试。

  4. Manifest的API密钥配置别写错
    确认Manifest里的元数据标签是正确的,别用旧的Maps API密钥配置:

    <meta-data
        android:name="com.google.android.geo.API_KEY"
        android:value="你的实际API密钥"/>
    

    重点是name属性必须是com.google.android.geo.API_KEY,这是Places API的专用配置项。

  5. 再确认Places API真的启用了
    虽然你可能已经做了,但还是去开发者控制台的「API和服务」里检查一下,确保Places API(不是Places SDK for Android)已经被启用——有时候会不小心开成其他相关API但没开对的。

另外,你可以在代码里加一段异常捕获,方便后续排查:

// 在你的EmploymentDetailsActivity或GooglePlacesAdapter的API调用处
try {
    // 执行Places API请求的代码
} catch (ApiException e) {
    Log.e("PlacesDebug", "错误码: " + e.getStatusCode() + ", 详情: " + e.getMessage());
}

根据你说的「去掉限制密钥就正常」,说明你的代码逻辑和API调用是没问题的,核心就是限制配置的匹配问题,把上面几点逐一排查,应该就能解决了。

内容的提问来源于stack exchange,提问作者Maulik Dodia

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:51:24