Flutter集成Firebase运行报错:'wthrow'不是类型等问题求助
Flutter Run 执行失败问题排查
问题概述
执行flutter run时构建失败,按Firebase官方指南完成配置后仍出现语法错误及非空返回值异常。
已执行的操作步骤
- 准备工作区:安装Firebase CLI、Flutter SDK并创建项目
- 激活flutterfire_cli并配置项目:
flutterfire configure --project=:<projectId> - 在
main.dart中初始化Firebase:
import 'package:firebase_core/firebase_core.dart'; import 'package:flutter/material.dart'; void main() async { WidgetsFlutterBinding.ensureInitialized(); await Firebase.initializeApp( options: DefaultFirebaseOptions.currentPlatform, ); runApp(const MyApp()); }
- 修改
android/app/build.gradle中的minSdkVersion为21(官方说明21及以上默认启用multidex,无需额外添加库)
运行时错误日志
Launching lib\main.dart on SM M305M in debug mode... : Error: 'wthrow' isn't a type. wthrow noAppExists(name); ^^^^^^ : Error: Expected ';' after this. wthrow noAppExists(name); ^^^^^^^^^^^ : Error: A non-null value must be returned since the return type 'FirebaseAppPlatform' doesn't allow null. - 'FirebaseAppPlatform' is from 'package:firebase_core_platform_interface/firebase_core_platform_interface.dart' ('../../AppData/Local/Pub/Cache/hosted/pub.dev/firebase_core_platform_interface-4.5.3/lib/firebase_core_platform_interface.dart'). FirebaseAppPlatform app([String name = defaultFirebaseAppName]) { ^ Target kernel_snapshot failed: Exception FAILURE: Build failed with an exception. * Where: Script 'C:\sdk\flutter\packages\flutter_tools\gradle\flutter.gradle' line: 1153 * What went wrong: Execution failed for task ':app:compileFlutterBuildDebug'. > Process 'command 'C:\sdk\flutter\bin\flutter.bat'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. * Get more help at https://help.gradle.org BUILD FAILED in 20s Exception: Gradle task assembleDebug failed with exit code 1 Exited (sigterm)
Flutter Doctor 输出
[✓] Flutter (Channel master, 3.9.0-1.0.pre.77, on Microsoft Windows [versÆo 10.0.22000.1641], locale pt-BR) • Flutter version 3.9.0-1.0.pre.77 on channel master at C:\sdk\flutter • Upstream repository https://github.com/flutter/flutter.git • Framework revision 80be2bfc9f (28 hours ago), 2023-03-07 12:20:06 -0500 • Engine revision 4e6cbe0fc2 • Dart version 3.0.0 (build 3.0.0-300.0.dev) • DevTools version 2.22.2 [✓] Windows Version (Installed version of Windows is version 10 or higher) [✓] Android toolchain - develop for Android devices (Android SDK version 33.0.2) • Android SDK at C:\sdk\android • Platform android-33, build-tools 33.0.2 • ANDROID_HOME = C:\sdk\android • ANDROID_SDK_ROOT = C:\sdk\android • Java binary at: C:\sdk\java\jdk-11.0.2\bin\java • Java version OpenJDK Runtime Environment 18.9 (build 11.0.2+9) • All Android licenses accepted. [✓] Chrome - develop for the web • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe [✓] Visual Studio - develop for Windows (Visual Studio Community 2022 17.1.3) • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community • Visual Studio Community 2022 version 17.1.32328.378 • Windows 10 SDK version 10.0.19041.0 [!] Android Studio (not installed) • Android Studio not found; download from https://developer.android.com/studio/index.html (or visit https://flutter.dev/docs/get-started/install/windows#android-setup for detailed instructions). [✓] VS Code (version 1.76.0) • VS Code at C:\Users\maste\AppData\Local\Programs\Microsoft VS Code • Flutter extension version 3.60.0 [✓] Connected device (4 available) • SM M305M (mobile) • 3200419b4b3536e7 • android-arm64 • Android 10 (API 29) • Windows (desktop) • windows • windows-x64 • Microsoft Windows [versÆo 10.0.22000.1641] • Chrome (web) • chrome • web-javascript • Google Chrome 110.0.5481.178 • Edge (web) • edge • web-javascript • Microsoft Edge 110.0.1587.63 [✓] Network resources • All expected network resources are available. ! Doctor found issues in 1 category.
解决建议
从错误日志看,wthrow属于无效语法,结合你使用Flutter master分支(包含Dart 3.0开发版)的情况,大概率是依赖兼容性问题:
- 切换到Flutter稳定分支:master分支为开发预览版,兼容性较差,执行以下命令切换:
flutter channel stable flutter upgrade
检查并更新Firebase依赖:执行
flutter pub outdated查看依赖版本是否过时,更新pubspec.yaml中firebase相关依赖到兼容稳定分支的版本,然后执行flutter pub get。重新生成Firebase配置:执行
flutterfire configure --project=:<projectId>重新生成DefaultFirebaseOptions,确保配置文件与当前Flutter版本匹配。清理项目缓存:执行
flutter clean清理旧构建缓存,再重新运行flutter run。
注:未安装Android Studio不影响当前构建,你的Android toolchain已配置完成。
内容的提问来源于stack exchange,提问作者João Vitor Dos Santos Silva
相关产品推荐
相关产品推荐

