新手启动废弃Flutter项目遇参数及方法未定义报错,求修复方案
问题分析与解决步骤
你遇到的两类错误都是旧依赖包和当前Flutter 2.5.0版本不兼容导致的,以下是具体解决办法:
一、chewie包参数不兼容错误
报错信息
../../../Documents/Apps/Flutter/2.5.0/flutter/.pub-cache/hosted/pub.dartlang.org/chewie-0.10.4/lib/src/chewie_player.dart:85:7: 错误:不存在名为'resizeToAvoidBottomPadding'的命名参数。 resizeToAvoidBottomPadding: false, ^^^^^^^^^^^^^^^^^^^^^^^^^^ ../../../Documents/Apps/Flutter/2.5.0/flutter/packages/flutter/lib/src/material/scaffold.dart:1643:9: 上下文:找到该候选构造函数,但参数不匹配。 const Scaffold({ ^^^^^^^^
解决办法
- 推荐方案:打开项目的
pubspec.yaml文件,将chewie的版本更新为适配Flutter 2.5的版本,比如:
然后执行命令chewie: ^1.0.0flutter pub get拉取新依赖。 - 临时方案:直接修改本地pub缓存中的chewie源码,找到
chewie_player.dart第85行,把resizeToAvoidBottomPadding替换为resizeToAvoidBottomInsets。
二、video_player_platform_interface方法名变更错误
报错信息(典型示例)
../../../Documents/Apps/Flutter/2.5.0/flutter/.pub-cache/hosted/pub.dartlang.org/video_player_platform_interface-2.2.0/lib/messages.dart:432:15: 错误:类'BasicMessageChannel<dynamic>'未定义方法'setMockMessageHandler'。 - 'BasicMessageChannel' 来自包'package:flutter/src/services/platform_channel.dart' ('../../../Documents/Apps/Flutter/2.5.0/flutter/packages/flutter/lib/src/services/platform_channel.dart')。 请尝试将名称更正为现有方法的名称,或定义一个名为'setMockMessageHandler'的方法。 channel.setMockMessageHandler((dynamic message) async { ^^^^^^^^^^^^^^^^^^^^^
解决办法
- 推荐方案:打开
pubspec.yaml,将video_player的版本更新为兼容Flutter 2.5的版本,比如:
执行video_player: ^2.2.0flutter pub get更新依赖。 - 临时方案:修改本地pub缓存中的
video_player_platform_interface源码,在messages.dart文件里,把所有的setMockMessageHandler替换为setMockHandler。
内容的提问来源于stack exchange,提问作者Rose
相关产品推荐
相关产品推荐

