当前仓库属于关闭状态,部分功能使用受限,详情请查阅 仓库状态说明
19 Star 115 Fork 132

OpenHarmony-SIG/flutter_packages
关闭

 / 详情

shared_preferences 读取导致白屏

待办的
任务
创建于  
2024-09-26 00:30

【任务描述】
在存入超大的整数时,调用 setInt ,发现源码中强行转为了 Number 存储,导致业务层 getInt 无法读取到,甚至卡死。
源码实现见 SharedPreferencesOhosPlugin.ets

setInt(key: string, value: number): Promise<void> {
    if(typeof value == "bigint") {
      return this.put(key, Number(value));
    }
    return this.put(key, value);
}

内部将 bigint 转为了 Number 存储,但是业务层在 setInt 时,无任何提示以及报错

同时,业务层再通过 getInt 读取时,直接卡死,无任何报错信息

最后发现只能通过 getDouble 读取出来,也就是,最后成了一个 double 类型。

  • 没任何提示,即便读取失败也没有抛出异常
  • 无论底层如何实现,即便 int 转为了 double,但不应该导致业务层出现 setInt getDouble 的情况。

评论 (1)

jianrentang 创建了任务 6个月前

类似的 issue 有

#IAR6BX

#I9JMIB

jianrentang 修改了描述 6个月前

登录 后才可以发表评论

状态
负责人
项目
里程碑
Pull Requests
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
开始日期   -   截止日期
-
置顶选项
优先级
预计工期 (小时)
参与者(1)
jianrentang-jianrentang
1
https://gitee.com/openharmony-sig/flutter_packages.git
git@gitee.com:openharmony-sig/flutter_packages.git
openharmony-sig
flutter_packages
flutter_packages

搜索帮助