ObjectBox Generator报No named parameter with the name 'lazy'错误如何解决
问题解决方法
这个错误和你之前注册ObjectBox Store为单例的代码无关,根本原因是objectbox_generator代码生成器版本与项目中引入的objectbox核心库版本不匹配。
你当前使用的objectbox核心库为1.1.1版本,该版本的ListReader构造函数没有lazy参数,但版本更高的objectbox_generator生成代码时会自动添加lazy: false参数,就会触发参数不匹配的编译错误。
具体解决步骤
- 首先执行
flutter clean清理项目构建缓存 - 手动删除项目中已生成的
lib/objectbox.g.dart文件 - 打开
pubspec.yaml文件,确保objectbox、objectbox_flutter_libs、objectbox_generator三个依赖的版本号完全一致,不要添加^前缀避免自动升级到不兼容的更高版本,示例配置如下:
dependencies: objectbox: 1.1.1 objectbox_flutter_libs: 1.1.1 dev_dependencies: objectbox_generator: 1.1.1
- 执行
flutter pub get重新拉取匹配版本的依赖 - 执行
flutter pub run build_runner build --delete-conflicting-outputs重新生成objectbox相关代码
如果后续需要升级ObjectBox版本,同步将上述三个依赖升级到相同的最新稳定版本即可避免该类兼容问题。
内容的提问来源于stack exchange,提问作者DJ2695
相关产品推荐
相关产品推荐

