You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

macOS下Flutter应用Object Box单元测试失败求助

解决macOS Flutter Object Box单元测试RangeError (byteOffset)错误

针对你在macOS上运行Flutter应用Object Box单元测试时,调用query.find()触发RangeError (byteOffset): Invalid value: Valid value range is empty: 0的问题,可通过以下方式解决:

  • 升级Object Box版本
    你使用的1.6.2版本存在已知的空数据查询异常问题,后续版本(2.x及以上)已修复该bug。直接修改pubspec.yaml中objectbox和objectbox_flutter_libs的版本为最新稳定版,执行flutter pub get更新依赖即可。

  • 检查测试环境的数据库初始化
    单元测试中若未正确初始化BoxStore,或数据库临时目录未创建,会导致查询时读取无效数据。确保测试前后完成Store的初始化与销毁:

    late BoxStore store;
    
    setUp(() async {
      final tempDir = await getTemporaryDirectory();
      store = await openStore(directory: tempDir.path);
    });
    
    tearDown(() {
      store.close();
    });
    
  • 提前判断数据是否为空
    在旧版本中,当Box内无数据时调用query.find()可能触发异常,可先判断Box状态再执行查询:

    if (_box.isEmpty) {
      return [];
    }
    final query = _box.query(any query).build(); 
    final data = query.find(); 
    query.close(); 
    return data;
    

内容的提问来源于stack exchange,提问作者raphire

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 23:42:04