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

Android集成GoogleSignInClient遇ApiException:10开发者错误求助

解决GoogleSignInClient抛出ApiException:10(开发者错误)的方案

ApiException:10本质是客户端身份验证不匹配,结合你对接Fitness API的场景,按以下步骤排查修复:

1. 严格核对客户端ID与SHA1哈希的匹配性

  • 打开Google Cloud Console,找到你的项目→API和服务→凭据,检查Android类型的OAuth客户端ID:
    • 确认SHA1哈希值和当前调试/发布用的签名证书完全一致。调试版用debug.keystore的SHA1,发布版用正式签名证书的SHA1。
    • 获取SHA1的命令:keytool -list -v -keystore 你的keystore路径 -alias 证书别名,调试版默认命令:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey(Windows路径为C:\Users\<你的用户名>\.android\debug.keystore)
  • 绝对不能把Web类型的客户端ID用到Android代码中,Android端只能用Android类型的客户端ID。

2. 适配Fitness API配置GoogleSignInOptions

因为要对接Fitness API,必须在配置中添加对应权限Scope,同时确保ID Token使用正确的Android客户端ID。修改代码如下:

// 替换为你在Google Cloud Console获取的Android客户端ID
val ANDROID_CLIENT_ID = "你的Android客户端ID.apps.googleusercontent.com"

val gso = GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
    .requestEmail()
    .requestIdToken(ANDROID_CLIENT_ID) // 对接Fitness API需验证身份,必须添加
    .requestScopes(Scope("https://www.googleapis.com/auth/fitness.activity.read"))
    .build()

3. 清除本地缓存数据

本地缓存的旧配置可能导致验证失败,执行以下操作:

  • 手机设置→应用→Google Play服务→存储→清除缓存+清除数据
  • 清除你的应用的缓存和数据,重新启动测试。

4. 检查OAuth同意屏幕配置

  • 确保OAuth同意屏幕的状态为「发布」(测试阶段可添加测试用户,将你的测试账号加入列表)
  • 确认同意屏幕中已添加Fitness API的对应权限Scope,且状态为已保存。

5. 统一依赖版本避免冲突

在Module级别的build.gradle中,确保Google Sign-In和Fitness API的依赖版本一致,推荐使用最新稳定版:

implementation 'com.google.android.gms:play-services-auth:20.7.0'
implementation 'com.google.android.gms:play-services-fitness:21.1.0'

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 10:41:07