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

添加Multidex支持后Flutter应用卡在启动页面的问题求助

解决Flutter添加cloud_firestore后启动页卡死的问题

核心问题分析

从报错日志可以定位两个关键问题:

  1. Firebase未初始化就调用Firestore:全局变量firestoreInstance在Firebase.initializeApp()执行前就被创建,触发No Firebase App '[DEFAULT]' has been created错误
  2. Flutter绑定未初始化:Firebase初始化依赖Flutter平台通道,而通道需要先完成绑定初始化,触发Binding has not yet been initialized错误

解决方案

1. 修正Firebase初始化逻辑

修改main.dart的初始化顺序,确保异步操作完成后再启动应用,同时避免提前创建Firestore实例:

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:flutter_riverpod/flutter_riverpod.dart';
import 'package:google_fonts/google_fonts.dart';
import 'package:meals/screens/tabs.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// 用Riverpod管理Firestore实例,避免全局提前初始化
final firestoreInstanceProvider = Provider<FirebaseFirestore>((ref) {
  return FirebaseFirestore.instance;
});

final theme = ThemeData(
  useMaterial3: true,
  colorScheme: ColorScheme.fromSeed(
      brightness: Brightness.dark,
      seedColor: const Color.fromARGB(255, 3, 107, 225)),
  textTheme: GoogleFonts.latoTextTheme(),
);

void main() async {
  // 先初始化Flutter绑定,确保平台通道可用
  WidgetsFlutterBinding.ensureInitialized();
  // 等待Firebase初始化完成
  await Firebase.initializeApp(
    options: DefaultFirebaseOptions.currentPlatform,
  );
  runApp(const ProviderScope(
    child: App(),
  ));
}

class App extends StatelessWidget {
  const App({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      theme: theme,
      home: const TabsScreen(),
    );
  }
}

2. 确认Multidex配置正确性

在android/app/build.gradle中确保以下配置:

defaultConfig {
    // 其他配置...
    multiDexEnabled true
}

保留Flutter自动生成的FlutterMultiDexApplication类,无需手动修改Application配置。

3. 清理缓存并重建项目

执行以下命令清除旧构建缓存,避免残留问题:

flutter clean
flutter pub get
flutter run

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 03:53:11