Ale*_*lex 3 null android ios firebase flutter
我正在使用 firebase 开发一个 flutter 项目。我目前正在 MacBook 上进行开发,使用模拟的 iPhone(以防万一这是相关的)。我能够运行我的应用程序,但这样做时,它只是一个永远不会消失的白色空白屏幕,了解这种情况在 Chrome 和模拟 Android 设备上发生也可能是相关的。查看窗口run,我可以看到出现以下错误:
Launching lib/main.dart on iPhone 13 in debug mode...\nRunning Xcode build...\nXcode build done. 28.4s\nDebug service listening on ws://127.0.0.1:61474/fF4XR-ozS5s=/ws\nSyncing files to device iPhone 13...\n[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: Null check operator used on a null value\n#0 MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:121:86)\n#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:146:36)\n#2 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:329:12)\n#3 MethodChannel.invokeListMethod (package:flutter/src/services/platform_channel.dart:342:41)\n#4 MethodChannelFirebase._initializeCore (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:31:37)\n#5 MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:73:13)\n#6 Firebase.initializeApp (package:firebase_core/src/firebase.dart:42:47)\n#7 main (package:we_rise/main.dart:8:18)\n#8 _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:145:25)\n#9 _rootRun (dart:async/zon<\xe2\x80\xa6>\nRun Code Online (Sandbox Code Playgroud)\n由于我还是个新手,所以我无法完全理解出了什么问题,或者我在这里看到了什么。请在下面找到我的main.dart文件代码:
Launching lib/main.dart on iPhone 13 in debug mode...\nRunning Xcode build...\nXcode build done. 28.4s\nDebug service listening on ws://127.0.0.1:61474/fF4XR-ozS5s=/ws\nSyncing files to device iPhone 13...\n[VERBOSE-2:ui_dart_state.cc(209)] Unhandled Exception: Null check operator used on a null value\n#0 MethodChannel.binaryMessenger (package:flutter/src/services/platform_channel.dart:121:86)\n#1 MethodChannel._invokeMethod (package:flutter/src/services/platform_channel.dart:146:36)\n#2 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart:329:12)\n#3 MethodChannel.invokeListMethod (package:flutter/src/services/platform_channel.dart:342:41)\n#4 MethodChannelFirebase._initializeCore (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:31:37)\n#5 MethodChannelFirebase.initializeApp (package:firebase_core_platform_interface/src/method_channel/method_channel_firebase.dart:73:13)\n#6 Firebase.initializeApp (package:firebase_core/src/firebase.dart:42:47)\n#7 main (package:we_rise/main.dart:8:18)\n#8 _runMainZoned.<anonymous closure>.<anonymous closure> (dart:ui/hooks.dart:145:25)\n#9 _rootRun (dart:async/zon<\xe2\x80\xa6>\nRun Code Online (Sandbox Code Playgroud)\n我希望这有用。我真的不明白为什么在应用程序加载时它会向我显示空白屏幕。我也读过这个答案,但我认为我没有在代码中使用空检查运算符。感谢任何帮助、建议和批评。
\n编辑:添加颤振医生输出
\nflutter doctor输出:
import \'package:firebase_core/firebase_core.dart\';\nimport \'package:flutter/material.dart\';\nimport \'package:flutter/services.dart\';\nimport \'database_config.dart\';\nimport \'launch_page.dart\';\n\nvoid main() async {\n await Firebase.initializeApp(\n options: FirebaseOptions(\n apiKey: "foo",//"apiKey",\n appId: "foo",//"appId",\n messagingSenderId: "foo",//"messagingSenderId",\n projectId: "foo"),//"projectId"),\n );\n runApp(MyApp());\n}\n\nclass MyApp extends StatelessWidget {\n @override\n Widget build(BuildContext context) {\n SystemChrome.setPreferredOrientations(\n [DeviceOrientation.portraitUp, DeviceOrientation.portraitDown],\n );\n return MaterialApp(\n theme: ThemeData(\n brightness: Brightness.light,\n fontFamily: \'BookmanOldStyle\',\n ),\n home: LaunchPage(),\n );\n }\n}\nRun Code Online (Sandbox Code Playgroud)\nflutter doctor -v输出:
flutter doctor -v\n[\xe2\x9c\x93] Flutter (Channel stable, 2.5.3, on macOS 12.0.1 21A559 darwin-arm, locale en-GB)\n \xe2\x80\xa2 Flutter version 2.5.3 at /Users/me/Documents/flutter\n \xe2\x80\xa2 Upstream repository https://github.com/flutter/flutter.git\n \xe2\x80\xa2 Framework revision 18116933e7 (3 months ago), 2021-10-15 10:46:35 -0700\n \xe2\x80\xa2 Engine revision d3ea636dc5\n \xe2\x80\xa2 Dart version 2.14.4\n\n[\xe2\x9c\x93] Android toolchain - develop for Android devices (Android SDK version 31.0.0)\n \xe2\x80\xa2 Android SDK at /Users/me/Library/Android/sdk\n \xe2\x80\xa2 Platform android-31, build-tools 31.0.0\n \xe2\x80\xa2 Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java\n \xe2\x80\xa2 Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)\n \xe2\x80\xa2 All Android licenses accepted.\n\n[\xe2\x9c\x93] Xcode - develop for iOS and macOS\n \xe2\x80\xa2 Xcode at /Applications/Xcode.app/Contents/Developer\n \xe2\x80\xa2 Xcode 13.2.1, Build version 13C100\n \xe2\x80\xa2 CocoaPods version 1.11.2\n\n[\xe2\x9c\x93] Chrome - develop for the web\n \xe2\x80\xa2 Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome\n\n[\xe2\x9c\x93] Android Studio (version 2020.3)\n \xe2\x80\xa2 Android Studio at /Applications/Android Studio.app/Contents\n \xe2\x80\xa2 Flutter plugin can be installed from:\n https://plugins.jetbrains.com/plugin/9212-flutter\n \xe2\x80\xa2 Dart plugin can be installed from:\n https://plugins.jetbrains.com/plugin/6351-dart\n \xe2\x80\xa2 Java version OpenJDK Runtime Environment (build 11.0.10+0-b96-7249189)\n\n[\xe2\x9c\x93] Connected device (2 available)\n \xe2\x80\xa2 iPhone 13 (mobile) \xe2\x80\xa2 C0D4EC95-07AF-46AB-A35E-F2B9F4437875 \xe2\x80\xa2 ios \xe2\x80\xa2 com.apple.CoreSimulator.SimRuntime.iOS-15-2 (simulator)\n \xe2\x80\xa2 Chrome (web) \xe2\x80\xa2 chrome \xe2\x80\xa2 web-javascript \xe2\x80\xa2 Google Chrome 97.0.4692.71\n\n\xe2\x80\xa2 No issues found!\nRun Code Online (Sandbox Code Playgroud)\n
You should add the
WidgetsFlutterBinding.ensureInitialized()
to the main function before Firebase initialization.
void main() async {
WidgetsFlutterBinding.ensureInitialized();
await Firebase.initializeApp(
options: FirebaseOptions(
apiKey: "foo",//"apiKey",
appId: "foo",//"appId",
messagingSenderId: "foo",//"messagingSenderId",
projectId: "foo"),//"projectId"),
);
await DatabaseConfig.initFirebase();
runApp(MyApp());
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |