Flutter Android端Google Sign-in出现ApiException:10错误求助
解决Flutter中google_sign_in的ApiException 10错误(非Firebase场景)
问题场景
移动端使用google_sign_in包实现Google登录时抛出错误:
PlatformException(sign_in_failed, com.google.android.gms.common.api.ApiException: 10: , null, null)
已完成Play Console添加SHA-1、包名核对、同意页面设置、SDK更新等排查操作,Web端登录正常,改用Firebase Auth SDK后移动端可正常登录。
针对性解决方案
检查Google Cloud Console的OAuth客户端配置
打开Google Cloud Console对应项目的「API和服务」→「凭据」,确认已创建Android类型的OAuth客户端ID:- 包名必须与应用的
applicationId完全匹配 - 已正确添加调试版和发布版的SHA-1指纹(需手动将Play Console中的SHA-1同步到这里,Firebase会自动关联,但
google_sign_in需要手动配置)
若未创建Android客户端ID,立即创建并填写正确信息。
- 包名必须与应用的
确认OAuth同意页面状态
- 测试阶段:确保同意页面处于「测试」状态,且已将测试用Google账号添加到测试用户列表
- 发布阶段:检查同意页面的信息是否完整合规,未被Google审核驳回
核对google_sign_in的初始化参数
初始化时必须传入Cloud Console生成的Android客户端ID,而非Web端ID:final GoogleSignIn _googleSignIn = GoogleSignIn( clientId: 'xxx-xxx.apps.googleusercontent.com', );重新验证签名证书指纹
重新生成调试/发布版SHA-1,确保与Cloud Console、Play Console中填写的完全一致:
调试版生成命令:keytool -list -v -keystore ~/.android/debug.keystore -alias androiddebugkey -storepass android -keypass android发布版从签名证书中提取,避免复制时出现字符错误。
检查设备Google账户状态
确认测试设备已登录正常的Google账户,且Google Play服务为最新版本,部分旧设备可能存在服务兼容性问题。
内容的提问来源于stack exchange,提问作者Husam Fathi
相关产品推荐
相关产品推荐

