执行dart pub upgrade后uuid_enhanced包报UnmodifiableUint8ListView不可继承错误
问题原因
该错误与你的业务代码、本地缓存均无关联,是你项目依赖的第三方包uuid_enhanced v3.0.2版本的SDK兼容缺陷导致:Dart 2.17及以上版本将UnmodifiableUint8ListView标记为受限类,禁止外部包继承或实现,该版本的uuid_enhanced没有适配新版Dart SDK的规则,才会触发编译报错。
修复方案
- 方案1:替换为官方维护的uuid包
uuid_enhanced已经停止维护更新,官方出品的uuid包已经覆盖了它的全部功能,适配性和稳定性更优。你只需在pubspec.yaml中把原有uuid_enhanced的依赖替换为uuid: ^4.4.0(可替换为当前最新稳定版),再把代码中所有import 'package:uuid_enhanced/uuid_enhanced.dart'的导入语句替换为import 'package:uuid/uuid.dart'即可,两个包的接口高度兼容,基本不需要额外修改业务逻辑。 - 方案2:锁定兼容的旧版本
如果暂时不想替换依赖包,可以在pubspec.yaml中添加依赖覆盖配置,固定使用没有兼容问题的3.0.1版本:
dependency_overrides: uuid_enhanced: 3.0.1
修改完成后,依次执行flutter clean、flutter pub get命令,再重新构建项目即可恢复正常。
内容的提问来源于stack exchange,提问作者Usama Yousaf
相关产品推荐
相关产品推荐

