W/CursorWindow(15677): Window is full: requested allocation 2195889 bytes, free space 2096720 bytes, window size 2097152 bytes
我知道有可用的应用程序内存:
D/dalvikvm(15677): GC_FOR_ALLOC freed 9K, 30% free 17050K/24291K, paused 45ms
所以它纯粹与光标大小窗口有关,当将 blob
读入 byte[]
时。
我使用内置方法从游标读取 blob。
try
{
c = rdb.query("Photos", new String[]{"photo"}, "id = ?", new String[]{""+photoID}, null, null, null);
if(c.moveToFirst())
{
byte[] tArray = c.getBlob(c.getColumnIndex("photo")); // THIS LINE ERRORS
}
}catch(Exception e)
{
e.printStackTrace();
}
c.close();
return tArray;
有没有办法解决这个问题?窗口大小似乎限制为 2097152 字节。
最佳答案
似乎最好的解决方法是将照片存储在 SDCard 上,并将 URI 保存在数据库中。
虽然我想避免这种情况,但它并不算太糟糕,而且更加稳定。
关于Android:光标窗口已满,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11863024/