问题描述
E/flutter (26872): [错误:flutter/lib/ui/ui_dart_state.cc(199)]未处理的异常:对空值使用空检查运算符E/颤动(26872):#0
MethodChannelFirebaseMessaging.registerBackgroundMessageHandler(包:firebase_messaging_platform_interface/src/method_channel/method_channel_messaging.dart:173:53)E/颤动(26872):#1
FirebaseMessagingPlatform.onBackgroundMessage=(包:firebase_messaging_platform_interface/src/platform_interface/platform_interface_messaging.dart:108:16)
// Background Messaging Set Up
Future<void> _firebaseMessagingBackgroundHandler(
RemoteMessage message) async {
print('background message');
}
FirebaseMessaging.onBackgroundMessage(_firebaseMessagingBackgroundHandler);
runApp(....)
我在 Android 系统上收到此代码错误.除非应用程序终止,否则一切正常.
I am getting an error for this code on Android system. Everything works except when the app is terminated.
适用于 Android 的功能:
- 终止、onBackground 和 onForeground 时的通知
- 仅在前景上显示日期
什么在 Android 上不起作用:
- 仅在 Terminated 和 onBackground 时提供数据
适用于 iOS 的功能:
- 终止、onBackground 和 onForeground 时的通知
- 仅在前景上显示日期
什么在 iOS 上不起作用:
- 仅在终止时提供数据,
我不知道为什么我会在 Android 系统上收到空值错误,我该如何解决这个问题?另外,当应用程序终止时,我在 iOS 上收不到 Data only
推送通知是真的吗?
I have no clue why I am getting that null value error on Android system and how can I fix this issue? Also, is it true that I can not receive the Data only
push notification on iOS when the app is terminated?
推荐答案
我遇到了和你一样的错误,在同一行.我查看了 docs,其中提到了关于后台消息处理程序的两件事.
I had the same error as like you, on the same line. I checked out docs and it says 2 things about background message handler.
- 它不能是匿名函数.
- 它必须是顶级函数(例如,不是需要初始化的类方法).
在我的例子中,它不是一个顶级函数,它是在一个类中声明的.当您将处理程序从任何类或函数中移出,使其成为顶级函数并且不需要任何类或方法初始化时,错误就会消失.
In my case it was not a top-level function, it was declared inside a class. When you move your handler out of any class or function, so that it is a top-level function and doesn't require any class or method initialisation then the error will be gone.
这篇关于Flutter:FCM未处理异常:空值检查运算符用于空值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!