运行 Flutter 项目后,出现此错误。我能做些什么来解决它?
Error: The method 'setMockMessageHandler'
isn't defined for the class 'BasicMessageChannel<dynamic>'.
FAILURE: Build failed with an exception.
运行 Flutter 项目后,出现此错误。我能做些什么来解决它?
Error: The method 'setMockMessageHandler'
isn't defined for the class 'BasicMessageChannel<dynamic>'.
FAILURE: Build failed with an exception.
在 Mac 上的 AndroidStudio 中更新插件后我遇到了同样的问题
flutter pub upgrade
没有为我做任何事,但是
flutter clean
flutter pub upgrade --major-versions
解决了问题
但这只是简单的 hack,不推荐
我今天遇到了同样的问题。
据我所知,这基本上是由平台通道测试接口转换到 flutter_test 包引起的重大变化。
flutter pub upgrade
就我而言,仅在全局终端会话上运行即可解决问题。
在引用的发行说明中查看有关上述转换的更多详细信息
我有同样的问题,我已经尝试了以上所有方法并没有帮助。
flutter pub upgrade
并flutter pub upgrade --major-versions
输出:
没有依赖项改变。
1 包已停产。
76 个软件包具有与依赖约束不兼容的较新版本。
尝试flutter pub outdated
了解更多信息。
pubspec.yaml 没有变化!这些插件advance_pdf_viewer, flutter_absolute_path, geocoder, google_api_headers, onesignal_flutter
使用了已弃用的 Android 嵌入版本。为避免意外的运行时失败或未来的构建失败,请尝试查看这些插件是否支持 Android V2 嵌入。否则,请考虑删除它们,因为 Flutter 的未来版本将删除这些已弃用的 API。如果您是插件作者,请查看将插件迁移到 V2 嵌入的文档:
https ://flutter.dev/go/android-plugin-migration 。
升级到 Flutter 2.5.3(从 2.2.3)后遇到这个问题。发布说明中概述的更改破坏了数百个测试,因为setUp()
大多数测试的模拟方法处理程序都设置在全局中。
如发行说明中所示,我将代码替换为
MethodChannel('channelName')
.setMockMethodCallHandler((MethodCall methodCall) {});
使用以下默认实例的代码TestDefaultBinaryMessenger
:
TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
.setMockMethodCallHandler(MethodChannel('channelName'), (MethodCall methodCall) {});
此更改使我能够保持所有测试不变。