gpt4 book ai didi

dart - 类型 '(PlatformException) => void' 不是类型 '(Object) => FutureOr Flutter 的子类型

转载 作者:IT王子 更新时间:2023-10-29 06:51:57 29 4
gpt4 key购买 nike

我在 Flutter 中使用事件 channel 将信标数据从 Native SDK 返回到 Flutter。在最近的 Flutter 升级之前,它工作正常。现在,我收到以下错误。

type '(PlatformException) => void' is not a subtype of type '(Object) => FutureOr<dynamic>

具有以下堆栈跟踪:

#0      _registerErrorHandler (dart:async/async_error.dart:22:60)
#1 _BufferingStreamSubscription.onError (dart:async/stream_impl.dart:146:16)
#2 new _BufferingStreamSubscription (dart:async/stream_impl.dart:113:10)
#3 new _ControllerSubscription (dart:async/stream_controller.dart)
#4 new _BroadcastSubscription (dart:async/broadcast_stream_controller.dart)
#5 _BroadcastStreamController._subscribe (dart:async/broadcast_stream_controller.dart:212:46)
#6 _ControllerStream._createSubscription (dart:async/stream_controller.dart:817:19)
#7 _StreamImpl.listen (dart:async/stream_impl.dart:466:9)
#8 _MyHomePageState.initPlatformState.<anonymous closure>.<anonymous closure> (file:///Users/chaythanyanair/Documents/Qburst/Learn/flutter_poc/lib/main.dart:95:43)
#9 _RootZone.runUnary (dart:async/zone.dart:1381:54)
#10 _FutureListener.handleValue (dart:async/future_impl.dart:129:18)
#11 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:633:45)
#12 Future._propagateToListeners (dart:async/future_impl.dart:662:32)
#13 Future._complete (dart:async/future_impl.dart:467:7)
#14 _SyncCompleter.complete (dart:async/future_impl.dart:51:12)
#15 MethodChannel.invokeMethod (package:flutter/src/services/platform_channel.dart)
<asynchronous suspension>
#16 _MyHomePageState.initPlatformState.<anonymous closure> (file:///Users/chaythanyanair/Documents/Qburst/Learn/flutter_poc/lib/main.dart:89:24)
<asynchronous suspension>
#17 _RootZone.runUnary (dart:async/zone.dart:1381:54)
#18 _FutureListener.handleValue (dart:async/future_impl.dart:129:18)
#19 Future._propagateToListeners.handleValueCallback (dart:async/future_impl.dart:633:45)
#20 Future._propagateToListeners (dart:async/future_impl.dart:662:32)
#21 Future._complete (dart:async/future_impl.dart:467:7)
#22 _SyncCompleter.complete (dart:async/future_impl.dart:51:12)
#23 User_Profile.getUser (package:flutter_poc/Models/User.dart)
<asynchronous suspension>
#24 _MyHomePageState.initPlatformState (file:///Users/chaythanyanair/Documents/Qburst/Learn/flutter_poc/lib/main.dart:69:24)
<asynchronous suspension>
#25 _MyHomePageState.initState (file:///Users/chaythanyanair/Documents/Qburst/Learn/flutter_poc/lib/main.dart:52:5)
#26 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:3734:58)
#27 ComponentElement.mount (package:flutter/src/widgets/framework.dart:3600:5)
#28 Element.inflateWidget (package:flutter/src/widgets/framework.dart:2890:14)
#29 Element.updateChild

这是我的 EventChannel 实现:

static const platform = const MethodChannel('samples.flutter.io/initialiseRanging');
static const stream =
const EventChannel('samples.flutter.io/ranging');
try {
await platform.invokeMethod('initialiseRanging').then((result){
print(result);
setState(() {
_currentValue = result;
});

stream.receiveBroadcastStream().listen(_onEvent, onError: _onError);
});

} on PlatformException catch (e) {
print( "{e.message}");
}

这就是 _onEvent 的方式和 _onError功能实现。

void _onEvent(Object event) {
setState(() {
_currentValue = event.toString();
});
print(event);
}

void _onError(PlatformException error) {
print(error);
}

知道为什么会发生这种情况吗?

最佳答案

void _onError(PlatformException error) {

应该是

void _onError(Object error) {

即使您只对 PlatformException 感兴趣,或者即使这是迄今为止发生的唯一异常,也不意味着不能有其他异常。预期的处理函数需要匹配参数类型,而不仅仅是您预期的异常。

关于dart - 类型 '(PlatformException) => void' 不是类型 '(Object) => FutureOr<dynamic> Flutter 的子类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49793193/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com