反应原生Amplify AsyncStorage错误 - AsyncStorageCache - 无法设置项目错误:数据库或磁盘已满(代码13 SQLITE_FULL)

问题描述 投票:0回答:1

我正在使用 AWS amplify 开发一个反应本机应用程序。有任何问题,但我一启动应用程序就突然收到以下错误。 (目前仅限安卓)

AsyncStorageCache - Failed to set item Error: database or disk is full (code 13 SQLITE_FULL)

即使我搜索整个源代码,也没有使用 AsyncStorage。我搜索了一下,发现 Amplify 使用了它。

所以,我通过下面的代码解决了这个问题。

    let listKey = [];
    const allKeys = await AsyncStorage.getAllKeys();
    for (const key of allKeys) {
      if (key.includes('@AmplifyDatastore')) listKey.push(key);
    }

    const res = await AsyncStorage.multiRemove(listKey);

我有一个问题。

  1. 我总是需要运行上面的代码吗? (App.js 等)我不确定,但这似乎不是一个好方法。
  2. 但是,如果我不做任何准备,客户在使用该应用程序时就会遇到问题。除了问题1之外,请告知如何处理。

谢谢你。

amazon-web-services react-native aws-amplify asyncstorage
1个回答
0
投票

此问题预计会发生在某些内存不足的设备上:

  1. 指定您的应用程序 (amazon-amplify) 应要求的可用内存的最小阈值。示例 - 250MB。
  2. 当应用程序初始化或切换到前台时,计算可用的空闲内存。如果它低于所需的阈值(~ 250MB)。显然,警告用户内存不足,并要求他们删除一些不太重要的文件。
© www.soinside.com 2019 - 2024. All rights reserved.