Android端Google Sign In返回错误码0问题排查求助
检查签名证书与SHA-1配置
如果应用使用了Google Play应用签名,需确保Google Cloud Console中OAuth 2.0客户端ID对应的凭据里,同时添加了上传密钥的SHA-1和Google生成的应用签名SHA-1。本地测试时,若使用debug keystore,也要确认debug的SHA-1已添加到凭据中。可通过keytool -list -v -keystore 你的keystore路径命令获取SHA-1值。验证OAuth客户端ID有效性
确认Constants.DEFAULT_WEB_CLIENT_ID对应的是Web应用类型的客户端ID(而非Android客户端ID),且该客户端ID未被禁用、所属项目状态正常。登录Google Cloud Console进入「API和服务→凭据」页面,检查对应客户端ID的状态和配置的包名是否与当前应用完全一致。打印详细错误状态码
修改代码中捕获ApiException的逻辑,除打印错误消息外,额外打印状态码,不同状态码对应明确的错误原因(比如12501代表用户取消登录,10代表API未启用等):catch (e: ApiException) { Log.d("LOGIN_DEBUG", "Google Sign In failed, status code: ${e.statusCode}, message: ${e.message}") }检查Google Play Services版本
测试设备上的Google Play Services版本过低可能导致登录失败,将设备的Google Play Services更新到最新版本后重试。确认应用包名与配置一致
检查当前应用的包名是否与Google Cloud Console、Firebase配置文件(google-services.json)中的包名完全匹配,更新版本时误改包名会直接导致登录验证失败。验证Firebase配置文件
若使用Firebase Auth,确保google-services.json是从Firebase控制台下载的最新版本,文件中client节点包含正确的包名和SHA-1指纹。测试不同构建变体
分别测试debug和release构建版本,排查是否仅某一变体存在问题。比如debug版本更换keystore后,未同步更新Google Cloud中的SHA-1配置。
内容的提问来源于stack exchange,提问作者Danish Ajaib

