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

Flutter集成Google登录报错:Concurrent operations detected等问题求助

解决Flutter Google登录中"Concurrent operations detected"异常

问题核心分析

异常提示java.lang.IllegalStateException: Concurrent operations detected: signIn, disconnect明确说明:你的应用正在同时触发**登录(signIn)和断开连接(disconnect)**两个操作,而google_sign_in插件不允许并发执行这类操作,这是导致崩溃的直接原因。

修复步骤

  • 排查并发调用逻辑:检查代码中是否存在调用signIn()的同时,未等待其完成就触发disconnect()的情况,比如登录按钮点击事件中意外执行了断开连接的代码。
  • 添加加载状态拦截重复操作:在登录按钮点击后设置加载标记,禁用按钮或拦截重复点击,避免用户多次触发操作引发并发问题。示例代码:
    bool _isLoading = false;
    
    Future<void> handleGoogleLogin() async {
      if (_isLoading) return;
      _isLoading = true;
    
      try {
        final GoogleSignInAccount? account = await GoogleSignIn().signIn();
        // 处理登录成功逻辑
      } catch (e) {
        // 处理登录失败逻辑
      } finally {
        _isLoading = false;
      }
    }
    
  • 规范异步操作流程:确保所有google_sign_in的异步方法都通过await等待执行完成后,再发起下一个相关操作。
  • 区分signOut与disconnect的使用场景:如果只是切换用户,使用signOut()即可;disconnect()是用来撤销应用对用户Google账户的访问权限,通常不需要在登录流程中调用。
  • 更新插件版本:确认使用的google_sign_in插件为最新版本,部分并发问题可能已在后续更新中修复。

补充说明

日志中的handleWindowVisibility: no activity for token警告通常是并发操作导致的次生问题,解决并发调用后该警告会随之消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 12:35:12