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

Places SDK for Android:API密钥应用限制后触发授权错误求助

解决Android Places Autocomplete API密钥限制后失效的问题

针对你遇到的「设置API密钥Android应用限制后,Places Autocomplete功能失效,提示IP未授权、空referer」的问题,给你几个具体排查方向:

  • 核对SHA-1指纹与构建类型匹配
    很多人会混淆debug和release版本的SHA-1指纹:debug版用的是Android Studio默认的debug.keystore,release版用的是你自己的签名keystore。确保你在Google Cloud控制台填写的SHA-1,和当前测试的应用构建版本的指纹完全一致。可以通过Android Studio的「Gradle -> 你的项目 -> Tasks -> android -> signingReport」查看准确的SHA-1,或者用命令行:

    keytool -list -v -keystore <你的keystore文件路径> -alias <密钥别名>
    
  • 确认API密钥限制类型与调用方式匹配
    如果你用的是Places SDK for Android官方客户端库(比如Autocomplete Widget或者PlacesClient API),必须选择「Android应用」类型的密钥,并且填写正确的applicationId(注意是build.gradle里的applicationId,不是AndroidManifest里的包名,两者可能不一致)。
    但如果是直接通过HTTP请求调用Places Web API(比如用Retrofit、OkHttp发请求到https://maps.googleapis.com/maps/api/place/autocomplete/json),这种情况下Android应用的包名+SHA-1限制是不生效的,因为Web API只识别IP或HTTP referer限制,这时候你需要用「服务器密钥」(并限制后端服务器IP),或者让客户端直接用Android密钥但改用官方SDK调用,不要直接调用Web API。

  • 检查API启用状态
    确认Google Cloud控制台里,你使用的服务对应的API已经启用:

    • 用Places SDK for Android的话,要启用「Places SDK for Android」
    • 用Web API的话,要启用「Places API」
      两者是不同的服务,启用错了也会导致权限问题。
  • 等待限制规则生效并清理缓存
    Google Cloud的API密钥限制规则不是实时生效的,可能需要5-15分钟才能同步到所有服务器。设置完限制后,不要立刻测试,等一段时间再试。同时,卸载重装测试应用,清除应用缓存,避免旧的密钥配置被缓存。

  • 排查是否存在请求转发
    如果你的应用是通过自己的后端服务器转发Places API请求,那么后端发出的请求会使用服务器的公网IP,这时候后端需要使用「服务器密钥」并设置IP限制(填写后端服务器的公网IP),而客户端的Android密钥只用于客户端直接调用的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:14:59