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

Flutter集成Google授权时出现异步挂起及通道连接错误求助

Flutter集成Google登录时出现PlatformException(channel-error)问题解决

问题描述

我是Flutter新手,在开发应用并集成Google授权登录流程时,添加Google登录实现代码后持续遇到以下错误:

E/flutter ( 9461): [ERROR:flutter/runtime/dart_vm_initializer.cc(41)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)

E/flutter ( 9461): #0 FirebaseCoreHostApi.initializeCore (package:firebase_core_platform_interface/src/pigeon/messages.pigeon.dart:199:7)

E/flutter ( 9461): <asynchronous suspension>

E/flutter ( 9461): #1 MethodChannelFirebase._initializeCore (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:29:44)

E/flutter ( 9461): <asynchronous suspension>

E/flutter ( 9461): #2 MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:73:7)

E/flutter ( 9461): <asynchronous suspension>

E/flutter ( 9461): #3 Firebase.initializeApp (package:firebase_core/src/firebase.dart:42:31)

E/flutter ( 9461): <asynchronous suspension>

E/flutter ( 9461): #4 main (package:project/main.dart:9:3)

E/flutter ( 9461): <asynchronous suspension>

E/flutter ( 9461):

I/project( 9461): Thread[6,tid=9481,WaitingInMainSignalCatcherLoop,Thread*=0xe0241c10,peer=0x12f40000,"Signal Catcher"]: reacting to signal 3

I/project( 9461):

I/project( 9461): Wrote stack traces to tombstoned

解决步骤

  • 验证Firebase配置文件
    确认Android端的google-services.json已放置在android/app目录下,iOS端的GoogleService-Info.plist已正确添加到Xcode项目中(需勾选"Copy items if needed")。

  • 检查依赖与同步
    确保pubspec.yaml中包含正确版本的firebase_core、firebase_auth、google_sign_in依赖,执行flutter pub get同步依赖。若版本不兼容,可参考Firebase官方插件文档调整版本号。

  • 清理项目缓存并重建
    执行以下命令清理缓存后重新构建项目:

    flutter clean
    flutter pub get
    cd android && ./gradlew clean && cd ..
    flutter run
    
  • 确认Firebase初始化代码
    确保main函数中先初始化Flutter绑定,再初始化Firebase,代码示例:

    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Firebase.initializeApp();
      runApp(const MyApp());
    }
    

    缺少WidgetsFlutterBinding.ensureInitialized()会导致平台通道初始化失败。

  • 检查平台权限与配置

    • Android:在android/app/src/main/AndroidManifest.xml中添加网络权限:
      <uses-permission android:name="android.permission.INTERNET" />
      
    • iOS:在Info.plist中添加Google登录的URL Scheme,格式为com.googleusercontent.apps.你的Firebase客户端ID,同时确保开启网络权限。
  • 升级Flutter与插件版本
    若使用的Flutter SDK或Firebase插件版本较旧,可能存在兼容性问题,执行flutter upgrade升级Flutter,同时更新pubspec.yaml中的插件版本到稳定版。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 03:43:19