Flutter报UnmodifiableUint8ListView受限无法继承实现如何解决?
问题根因
你使用的uuid_enhanced:3.0.2依赖包存在版本兼容问题:Dart 2.12及以上版本将UnmodifiableUint8ListView标记为禁止外部类继承/实现,该版本的uuid_enhanced源码违反了这个限制导致编译失败。两台Mac运行结果不同是因为两台设备的pub缓存依赖、或者pubspec.lock锁定的依赖实际解析版本存在差异。
解决方案
可按优先级选择以下任意方案修复:
- 方案1:替换为官方维护的依赖包
uuid_enhanced已长期停止维护,直接替换为官方稳定维护的uuid包即可,API完全兼容无需修改业务逻辑。在pubspec.yaml中删除uuid_enhanced的依赖,新增:
dependencies: uuid: ^3.0.7
将项目中所有import 'package:uuid_enhanced/uuid.dart'的引用统一替换为import 'package:uuid/uuid.dart',重新构建即可。
- 方案2:强制锁定兼容的uuid_enhanced版本
如果暂时不想替换依赖,可在pubspec.yaml中添加依赖覆盖规则,强制使用没有兼容问题的3.0.1版本:
dependency_overrides: uuid_enhanced: ^3.0.1
保存后执行flutter pub get重新拉取依赖即可正常构建。
- 方案3:清理本地缓存重新拉取
如果确认另一台设备使用的就是3.0.2版本可正常运行,执行以下命令清理本地异常缓存后重新构建:
flutter clean rm pubspec.lock flutter pub cache repair flutter pub get
执行完成后重新运行项目即可。
内容的提问来源于stack exchange,提问作者Mohsen Namazi
相关产品推荐
相关产品推荐

