长时间打开后无法构建 flutter 项目

Can't build flutter project when opening it after a long time

错误:方法'setMockMessageHandler' 没有为 class 'BasicMessageChannel'.

定义

失败:构建失败,出现异常。

如有任何帮助,我们将不胜感激

这并没有解决问题:flutter pub 升级

注意:我不想这样做 (flutter pub upgrade --major-versions) 因为这样做会破坏整个项目并引入更多的错误和错误

下面是完整的错误信息:

* 运行宁Gradle任务'assembleRelease'...
/E:/src/flutter/flutter/.pub-cache/hosted/pub.dartlang.org/video_player_platform_interface-2.2.0/lib/messages.dart:432:15: 错误:方法 'setMockMessageHandler' 不是定义为 class 'BasicMessageChannel'.

失败:构建失败,出现异常。

Process 'command 'E:\src\flutter\flutter\bin\flutter.bat'' finished with non-zero exit value 1

1 米 2 秒后构建失败 运行宁Gradle任务'assembleRelease'... 63.1s Gradle 任务 assembleRelease 失败,退出代码为 1 进程结束,退出代码为 1 *

出现此问题是由于较旧的项目结构和较新版本的插件导致冲突。您可以使用导致错误的旧版本插件。或者整体升级您的项目。

您可以在此处了解更多信息: https://flutter.dev/docs/development/packages-and-plugins/plugin-api-migration

如果您想使用旧版本,请尝试删除每个包的 ^,然后指定您之前使用的版本号。

示例:

来自

device_info_plus: ^2.1.0

device_info_plus: 2.1.0

为什么要这样做?插入符号就像范围。如果您有更高版本的软件包,那么如果它没有任何重大更改,则会使用它(我怀疑未能在此处看到重大更改)。详细了解 ^

好的,经过几天的尝试调试,我终于修复了它,原来“setMockMessageHandler”是一种从最新的 flutter 版本中删除的方法,我的一个依赖项正在使用它: 您可以通过将以下依赖项添加到您的 flutter pubspec.yaml 文件中来将其添加回项目中:

pigeon: ^1.0.7

你试过吗?

flutter clean

flutter pub get

flutter pub cache repair

flutter pub upgrade