Android 颤振:使用EventChannel的平台异常
我试图在我的颤振应用程序中实现Android 颤振:使用EventChannel的平台异常,android,flutter,Android,Flutter,我试图在我的颤振应用程序中实现EventChannel,收到以下错误: ══╡ 服务库捕获到异常 ╞══════════════════════════════════════════════════════════ 激活平台时引发了以下PlatformException 频道com.checkin.beacon.entered.beacons上的流: PlatformException(错误,指定为非null的参数为null: 方法kotlin.jvm.internal.Intrinsic
EventChannel
,收到以下错误:
══╡ 服务库捕获到异常
╞══════════════════════════════════════════════════════════
激活平台时引发了以下PlatformException
频道com.checkin.beacon.entered.beacons上的流:
PlatformException(错误,指定为非null的参数为null:
方法kotlin.jvm.internal.Intrinsics.checkParametersNotNull,
参数args,null)
这是我的密码:
颤振侧:
static const _enteredBeaconsEvent = const EventChannel("com.checkin.beacon.entered.beacons");
static void initialize () {
_enteredBeaconsEvent.receiveBroadcastStream().listen((data) {
print("data= $data");
});
}
在Android Native(Kotlin)上,代码为:
override fun configureFlutterEngine(@NonNull flutterEngine: FlutterEngine) {
GeneratedPluginRegistrant.registerWith(flutterEngine)
EventChannel(flutterEngine.dartExecutor.binaryMessenger, "com.checkin.beacon.entered.beacons").setStreamHandler(object : EventChannel.StreamHandler {
override fun onListen(args: Any, events: EventSink) {
Log.d(TAG, "adding listener")
events.success(true)
}
override fun onCancel(args: Any) {
Log.d(TAG, "cancelling listener")
}
})
}
我已经搜索了很多,但无法找到问题。默认情况下,Kotlin中的所有变量和参数都是非空的。如果要向方法传递null参数,则应向其类型添加
?
,例如:
override fun onListen(args: Any?, events: EventSink?) {...}
因此,您的最终代码如下所示:
覆盖fun配置颤振引擎(@NonNull颤振引擎:颤振引擎){
已生成的插件注册表注册表,带有(引擎)
EventChannel(flutterEngine.dartExecutor.binaryMessenger, "com.checkin.beacon.entered.beacons").setStreamHandler(object : EventChannel.StreamHandler {
override fun onListen(args: Any?, events: EventSink?) {
Log.d(TAG, "adding listener")
events.success(true)
}
override fun onCancel(args: Any?) {
Log.d(TAG, "cancelling listener")
}
})
}