运行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 2.5.3(从2.2.3)之后遇到了这个问题。如发布说明所述,更改破坏了几百个测试,因为大多数测试在全局setUp()
中设置了模拟方法处理程序。
如发布说明所示,我替换了类似以下代码的代码:
MethodChannel('channelName')
.setMockMethodCallHandler((MethodCall methodCall) {});
TestDefaultBinaryMessenger
的代码: TestDefaultBinaryMessengerBinding.instance.defaultBinaryMessenger
.setMockMethodCallHandler(MethodChannel('channelName'), (MethodCall methodCall) {});
我有同样的问题,尝试了以上所有方法都没有帮助。
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_test包而引起的破坏性变化。
在我的情况下,只需在全局终端会话中运行flutter pub upgrade
即可解决问题。
有关所提到的转换的更多详细信息,请参见相关发布说明