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

Android端Flutter Firebase初始化遇PlatformException(null-error)报错求助

Flutter Firebase初始化报错:PlatformException(null-error, Host platform returned null value for non-null return value.)

问题场景

开发Android平台的Flutter应用时,调用Firebase.initializeApp()触发如下异常:

未处理异常:PlatformException(null-error, Host platform returned null value for non-null return value., null, null)

初始化代码如下:

void main() async { 
  WidgetsFlutterBinding.ensureInitialized(); 
  await Firebase.initializeApp(); 
  final Database db = await initDatabase(); 
  runApp(WuupCirclesApp(db: db)); 
} 

开发环境:

  • Flutter版本:77.1.2(注:该版本号疑似输入错误,建议通过flutter --version确认实际版本)
  • Dart版本:231.9409(注:同样疑似输入错误,正常Dart版本格式如2.19.6)
  • Firebase Core版本:2.24.2
  • Android Studio:Hedgehog | 2023.1.1
  • 操作系统:macOS

已执行排查步骤:

  • 放置google-services.json到android/app目录并验证配置
  • 添加Firebase依赖并执行flutter pub get
  • 检查android/build.gradle和android/app/build.gradle配置
  • 执行flutter clean并重启应用
  • 验证google-services.json与build.gradle中的包名一致

应用额外依赖google_maps_flutter插件。

可能的原因及解决方法

1. 版本兼容性问题

  • Flutter/Firebase Core版本不匹配:Firebase Core 2.24.2要求Flutter版本至少3.3.0以上,若实际使用的Flutter版本过低,会导致平台层交互异常。先通过flutter --version确认真实版本,再调整依赖版本至匹配组合。
  • Google Maps插件与Firebase冲突:google_maps_flutter依赖的Google服务库版本可能与Firebase依赖的版本不一致,导致平台层初始化冲突。检查pubspec.yaml中google_maps_flutter的版本,确保其依赖的com.google.android.gms:play-services-maps版本与Firebase依赖的Google服务版本兼容。

2. Android构建配置遗漏

  • 确认android/build.gradle的buildscript块中是否添加了Google服务插件的classpath:
    buildscript {
      dependencies {
        // 确保添加该行,版本建议使用4.4.0及以上兼容版本
        classpath 'com.google.gms:google-services:4.4.0'
      }
    }
    
  • 确认android/app/build.gradle文件末尾是否添加了Google服务插件应用:
    apply plugin: 'com.google.gms.google-services'
    
  • 检查android/app/build.gradle中的minSdkVersion是否≥19,Firebase Core 2.x版本要求最低SDK版本为19。

3. Firebase初始化配置缺失

尝试显式指定平台初始化选项,替换原初始化代码:

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  // 显式指定当前平台的默认配置
  await Firebase.initializeApp(options: DefaultFirebaseOptions.currentPlatform);
  final Database db = await initDatabase();
  runApp(WuupCirclesApp(db: db));
}

注:使用该方式需要确保已通过flutterfire configure命令生成了DefaultFirebaseOptions配置文件,若未生成,需先执行该命令完成配置。

4. 构建缓存残留问题

除了flutter clean,还可执行以下操作清除深层缓存:

  • 删除android/.gradle目录
  • 执行flutter pub get重新拉取依赖
  • 在Android Studio中执行File -> Invalidate Caches... -> Restart清除IDE缓存

5. Google-services.json配置异常

再次确认google-services.json的细节:

  • 文件是否准确放置在android/app目录下(而非android根目录)
  • 文件中的project_id、api_key是否与Firebase控制台中对应Android应用的配置一致
  • 确认Firebase控制台中该Android应用的签名证书SHA-1是否正确配置(若应用使用了签名打包,调试包也需添加调试签名的SHA-1)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 16:23:17