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

使用Google SignIn时遇ApiException:10错误,求技术解决方案

解决Google SignIn的ApiException:10错误

嘿,这个com.google.android.gms.common.api.ApiException: 10:错误我太熟了!这几乎都是配置环节不匹配导致的,和你写的初始化/登录代码关系不大,咱们一步步来排查:

核心排查步骤

  • 检查SHA-1指纹是否正确配置
    这是最常见的原因!Google需要验证你的应用签名指纹:

    • 如果你用的是debug包,运行这条命令获取指纹:
      keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android
      
    • 如果你是release包,替换成你自己的签名文件路径和密码。
    • 打开Google Cloud控制台,找到你的项目→API和服务→凭据,确保对应的Android客户端ID已经添加了这个SHA-1指纹。
  • 确认Server Client ID的类型正确
    你的代码里调用了requestIdToken(getString(R.string.server_client_id)),这里的ID必须是Web应用类型的客户端ID,不是Android类型的!很多人会把Android客户端ID填进去,直接导致错误10。
    去控制台的凭据页面,找到标记为「Web应用」的客户端ID,复制到你的strings.xml里。

  • 检查Google登录API是否启用
    去Google Cloud控制台→API和服务→库,搜索「Google Sign-In API」,确保它处于已启用状态。如果没启用,API请求会直接失败。

  • 核对包名一致性
    控制台里Android客户端ID对应的包名,必须和你项目build.gradle里的applicationId完全一致,大小写、拼写都不能错。

  • 清理缓存并重新安装

    • 先在Android Studio里点击「File→Invalidate Caches...」,重启IDE。
    • 卸载设备上的旧应用,重新编译安装新包(避免旧的配置缓存干扰)。

代码补充:正确处理登录结果

另外,确保你在onActivityResult里正确解析结果,方便后续排查:

private const val RC_SIGN_IN = 1001 // 自定义请求码

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    if (requestCode == RC_SIGN_IN) {
        val signInTask = GoogleSignIn.getSignedInAccountFromIntent(data)
        try {
            val account = signInTask.getResult(ApiException::class.java)
            // 登录成功,获取ID Token处理后端验证
            val idToken = account.idToken
            Log.d(TAG, "Google ID Token: $idToken")
        } catch (e: ApiException) {
            Log.e(TAG, "登录失败,错误码: ${e.statusCode}")
            // 错误码10就是咱们上面排查的配置问题
        }
    }
}

按照上面的步骤走一遍,基本就能解决这个错误了!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 08:25:38