升级Flutter 3.13.2后simple_animations插件类型赋值报错
解决Flutter 3.13.2升级后simple_animations插件类型不兼容错误
问题原因
Flutter 3.13.x 版本对TickerMode.getNotifier()的返回类型进行了变更,从ValueNotifier<bool>改为ValueListenable<bool>,而你使用的simple_animations 4.2.0版本未适配这一改动,因此出现类型分配错误。
解决方案
升级simple_animations到兼容版本
打开项目的pubspec.yaml文件,将simple_animations的版本号更新为最新兼容版本(如^5.0.0及以上,可查看插件更新日志确认适配情况),然后执行以下命令更新依赖:flutter pub upgrade新版本已修复该类型适配问题,这是最优解决方案。
手动修改插件源码(临时应急方案)
若暂时无法升级插件,可直接修改缓存中的插件代码:- 定位到插件缓存路径:
C:/Users/Abdo/AppData/Local/Pub/Cache/hosted/pub.dev/simple_animations-4.2.0/lib/anicoto/animation_mixin.dart - 找到第139行代码,将:
修改为:final ValueNotifier<bool> newNotifier = TickerMode.getNotifier(context);
如果后续代码需要final ValueListenable<bool> newNotifier = TickerMode.getNotifier(context);ValueNotifier的特性,可做兼容处理:final ValueListenable<bool> listenable = TickerMode.getNotifier(context); final ValueNotifier<bool> newNotifier = listenable is ValueNotifier<bool> ? listenable : ValueNotifier(listenable.value);
注意:此修改会在下次执行
flutter pub get时被覆盖,仅作为临时方案。- 定位到插件缓存路径:
临时降级Flutter版本
若以上方案均不可行,可暂时将Flutter版本降级到3.13以下(例如3.10.6),执行命令:flutter downgrade 3.10.6该方案不推荐长期使用,会限制你使用Flutter 3.13的新特性。
内容的提问来源于stack exchange,提问作者Abdallah Mahmoud
相关产品推荐
相关产品推荐

