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

使用Google Identity Credentials库遇API连接异常,如何启用连接?

问题:解决IdentityCredentialClient调用时的API_NOT_CONNECTED错误

我尝试使用新版play-services-identity-credentials库,已添加以下依赖:

implementation("com.google.android.gms:play-services-identity-credentials:16.0.0-alpha03")
implementation("androidx.work:work-runtime:2.9.1") // 必须添加,否则完全无法运行

但调用IdentityCredentialClient的任意方法时,都会抛出ApiException: 17(对应CommonStatusCodes.API_NOT_CONNECTED,即客户端调用未连接成功的API),异常栈如下:

com.google.android.gms.common.api.ApiException: 17: 
    at com.google.android.gms.common.internal.ApiExceptionUtil.fromStatus(com.google.android.gms:play-services-base@@18.4.0:3)
    at com.google.android.gms.common.api.internal.TaskUtil.setResultOrApiException(com.google.android.gms:play-services-base@@18.4.0:4)
    at com.google.android.gms.identitycredentials.internal.InternalIdentityCredentialClient$registerCredentials$1$callback$1.onRegisterCredentials(com.google.android.gms:play-services-identity-credentials@@16.0.0-alpha03:1)
    at com.google.android.gms.identitycredentials.internal.IIdentityCredentialCallbacks$Stub.dispatchTransaction(com.google.android.gms:play-services-identity-credentials@@16.0.0-alpha03:16)
    at com.google.android.gms.internal.identity_credentials.zzb.onTransact(com.google.android.gms:play-services-identity-credentials@@16.0.0-alpha03:2)
    at android.os.Binder.execTransactInternal(Binder.java:1505)
    at android.os.Binder.execTransact(Binder.java:1444)

已添加google-services.json,但问题未解决;且Google控制台仅显示“Identity Toolkit API”,请问如何启用并连接Identity Credentials API?


解决方案

1. 启用正确的API

Identity Credentials API目前处于预览阶段,需在Google Cloud控制台操作:

  • 进入项目的API库页面,搜索Identity Credentials API(不要和Identity Toolkit API混淆)
  • 若找到该API,直接点击“启用”;若未找到,需确认项目是否满足预览访问条件(部分预览API需申请权限)

2. 验证客户端配置

  • 确保google-services.json是从已启用该API的项目下载,且包名、SHA-1指纹与应用完全匹配
  • 确认build.gradle中已应用Google Services插件:
    plugins {
        id 'com.android.application'
        id 'com.google.gms.google-services'
    }
    

3. 正确初始化客户端

按官方规范初始化IdentityCredentialClient,调用前检查Play服务可用性:

// 初始化客户端
val client = IdentityCredential.getClient(context)

// 检查Play服务状态
val playServicesStatus = GoogleApiAvailability.getInstance().isGooglePlayServicesAvailable(context)
if (playServicesStatus != ConnectionResult.SUCCESS) {
    // 引导用户更新Play服务
    return
}

4. 设备与凭据检查

  • 确保设备上的Google Play服务版本足够新(需支持16.0.0-alpha03版本的库,建议更新到最新稳定版)
  • 在Google Cloud控制台的“凭据”页面,确认已创建对应包名和SHA-1的OAuth 2.0客户端ID

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.18 16:48:11