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

Flutter应用小米设备Hive数据库异常:Box未找到错误求助

小米设备上Flutter Hive应用「Box not found」问题求助

问题现象

  • 开发的Flutter应用采用Hive实现本地存储,多数设备运行正常,但仅小米设备出现「Box not found」错误,Firebase Crashlytics捕获的错误信息如下:

Fatal Exception: io.flutter.plugins.firebase.crashlytics.FlutterError: HiveError: Box not found. Did you forget to call Hive.openBox()?. Error thrown Instance of 'ErrorDescription'.

  • APK在AWS Device Farm的小米模拟器、亲友的小米设备测试均正常,但Google Play分发的版本在真实小米设备上崩溃。
  • Crashlytics显示错误触发于首页的if (authProvider.login)代码处,其中login属性来自int get login => SettingsBox.getLogin();。

已做操作

  • 通过FutureBuilder在访问盒子前预执行await SettingsBox.openBox();,确保盒子已打开并设置初始值,但问题仍存在。
  • 确认Hive数据库存储在应用私有目录,未申请外部存储权限。

SettingsBox类代码

class SettingsBox {
    static Box getBox() {
        String name = 'boxName';
        return Hive.box(name);
    }
    static Future<void> openBox() async {
        String name = 'boxName';
        /*ommiting opening box using encryptionCipher*/
        if (Hive.box(name).get('myLoginKey') == null) {
            await setLogin(false);
        }
    }
    static Future<void> setLogin(bool l) async {
        String keyLogin = 'myLoginKey';
        await getBox().put(keyLogin, l);
    }
    static bool getLogin() {
        String keyLogin = 'myLoginKey';
        return getBox().get(keyLogin);
    }
}

当前困境

无法在其他设备复现问题,也无小米设备可直接测试,寻求解决该问题或进一步调试的建议。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 05:00:23