迁移到Apple M1后Flutter项目启动失败,执行flutter clean+get无效如何解决?
问题根因
报错完全来自chewie、chewie_audio依赖包与当前Flutter 2.2.3版本不兼容:
- Flutter 2.0版本后已将
Scaffold的resizeToAvoidBottomPadding参数废弃,替换为resizeToAvoidBottomInset - Flutter 1.12版本后已将
BuildContext的inheritFromWidgetOfExactType方法废弃,替换为dependOnInheritedWidgetOfExactType
你项目中用的chewie 0.9.10、chewie_audio 1.0.0+1都是未适配新版Flutter的旧版本,因此编译直接报错,和M1芯片设备本身无关联。
可行解决方案
方案1(推荐):升级适配版本
直接修改项目根目录下的pubspec.yaml文件,将两个依赖的版本升级至适配Flutter 2.2.3的对应版本:
dependencies: chewie: ^1.3.0 chewie_audio: ^1.2.0
修改完成后依次执行以下命令重建依赖:
- 删除项目根目录下的
pubspec.lock文件 - 执行
flutter clean清理构建缓存 - 执行
flutter pub get拉取新版依赖
之后重新启动应用即可正常编译。
方案2:回退Flutter版本
如果项目有其他依赖限制不能升级chewie相关包,可以使用Flutter版本管理工具切换回你之前开发该应用时使用的旧版Flutter,不需要修改任何代码即可正常运行。
内容的提问来源于stack exchange,提问作者user9343182
相关产品推荐
相关产品推荐

