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

Flutter项目iOS正常,Android调用Firebase.initializeApp()抛channel-error异常求助

解决Flutter Android端Firebase.initializeApp()抛出Channel-Error异常

问题现象

  • iOS端项目运行正常,Android端调用Firebase.initializeApp()时抛出如下异常:
    PlatformException (PlatformException(channel-error, Unable to establish connection on channel., null, null))
    

完整堆栈日志

✓  Built build/app/outputs/flutter-apk/app-debug.apk.
W/FlutterActivityAndFragmentDelegate(19624): A splash screen was provided to Flutter, but this is deprecated. See flutter.dev/go/android-splash-migration for migration steps.
Connecting to VM Service at ws://127.0.0.1:51576/EjKjPfki7E8=/ws
E/flutter (19624): [ERROR:flutter/lib/ui/ui_dart_state.cc(198)] Unhandled Exception: PlatformException(channel-error, Unable to establish connection on channel., null, null)
E/flutter (19624): #0      FirebaseCoreHostApi.initializeCore
package:firebase_core_platform_interface/…/pigeon/messages.pigeon.dart:199
E/flutter (19624): <asynchronous suspension>
E/flutter (19624): #1      MethodChannelFirebase._initializeCore
package:firebase_core_platform_interface/…/method_channel/method_channel_firebase.dart:29
E/flutter (19624): <asynchronous suspension>
E/flutter (19624): #2      MethodChannelFirebase.initializeApp
package:firebase_core_platform_interface/…/method_channel/method_channel_firebase.dart:73
E/flutter (19624): <asynchronous suspension>
E/flutter (19624): #3      Firebase.initializeApp
package:firebase_core/src/firebase.dart:40
E/flutter (19624): <asynchronous suspension>
E/flutter (19624): #4      main
package:cadsys_adm/main.dart:11
E/flutter (19624): <asynchronous suspension>
E/flutter (19624):

相关代码与依赖

触发异常的main代码

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

pubspec.yaml中的Firebase依赖

firebase_core: ^1.19.2
firebase_messaging: ^12.0.3

可行解决方案

以下是针对该Android端独有异常的排查和解决方向:

  • 升级Firebase依赖版本
    当前使用的依赖版本较旧,存在通道兼容性问题。建议升级到稳定版最新版本,示例:

    firebase_core: ^2.24.2
    firebase_messaging: ^14.7.11
    

    升级后执行flutter pub get,再执行flutter clean + flutter pub get清理缓存后重新编译。

  • 校验Android端Firebase配置

    1. 确认android/app/google-services.json是从Firebase控制台正确下载的,且文件内的包名与android/app/build.gradle中的applicationId完全一致。
    2. 检查android/build.gradle中是否添加了正确的Google服务插件依赖:
      dependencies {
          classpath 'com.google.gms:google-services:4.4.0' // 版本不低于4.3.10即可
      }
      
    3. 确认android/app/build.gradle末尾已应用插件:
      apply plugin: 'com.google.gms.google-services'
      
  • 调整初始化时机
    在WidgetsFlutterBinding.ensureInitialized()后添加短暂延迟,确保Flutter与原生通道完全初始化:

    void main() async {
      WidgetsFlutterBinding.ensureInitialized();
      await Future.delayed(const Duration(milliseconds: 500));
      await Firebase.initializeApp();
      runApp(MyApp());
    }
    
  • 适配Android SDK版本
    确保android/app/build.gradle中的SDK版本符合要求:

    android {
        compileSdkVersion 34
    
        defaultConfig {
            minSdkVersion 21
            targetSdkVersion 34
        }
    }
    
  • 彻底清理构建缓存
    执行以下命令清理后重新编译:

    flutter clean
    cd android && ./gradlew clean
    cd .. && flutter pub get
    flutter run
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 12:36:18