【发布时间】:2019-08-27 16:49:41
【问题描述】:
当我想读取我之前保存到数据库中的大图像(大约 10MB)时,我收到以下错误:
窗口已满:请求分配 10052488 字节,可用空间 2096638字节,窗口大小2097152字节
java.lang.IllegalStateException: 无法读取第 0 行第 0 列 光标窗口
但是,保存图像后,不会出现错误。我使用以下代码行来获取值:
value = cursor.getString(fieldIndex);
阅读this question 让我相信除了不将图像保存到数据库之外没有其他解决方案。但是,我的日程安排很紧,更改这部分代码需要很长时间,所以如果有任何方法可以让它工作,我将非常感谢任何提示/黑客/解决方法。
同一行代码非常适用于较小的图像(我只是用 6MB 的图像尝试过,没有任何问题),所以我很确定我的 Java 代码中没有错误。图像的保存过程也完全没有问题。
【问题讨论】:
-
尝试将文件保存在sdcard中,并将图片的路径保存到db中。
-
为什么不保存为 BLOB?
-
@SilvansSolanki 这正是我想要避免的,因为时间紧迫
-
但这可能是设备相关的问题,上面的错误意味着光标已经达到了他的极限,这因设备而异。一种可能的解决方案可能是将字符串分成块并保存块,然后将它们放在一起......
-
好的,谢谢。如果我有消息,我会写回复。