相关疑难解决方法(0)

Android无尽列表

如何创建一个列表,当您到达列表末尾时,我会收到通知,以便我可以加载更多项目?

android listview list

231
推荐指数
3
解决办法
11万
查看次数

Android:光标窗口已满

W/CursorWindow(15677):窗口已满:请求分配2195889字节,可用空间2096720字节,窗口大小2097152字节

我知道有app内存可用:

D/dalvikvm(15677):GC_FOR_ALLOC释放9K,30%免费17050K/24291K,暂停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;
Run Code Online (Sandbox Code Playgroud)

有没有解决的办法?窗口大小似乎限制为2097152字节.

memory sqlite android blob

20
推荐指数
1
解决办法
1万
查看次数

Room 中出现“在访问数据之前确保光标已正确初始化”错误

在 Crashlytics 上,我看到许多 Room 异常都带有以下消息:“在访问光标之前确保光标已正确初始化”。我无法在我的设备上产生此错误,并且该错误不会发生在特定的 Android 版本或设备型号上。

我在 Room 上找不到有关此错误的任何信息。SQLLite 存在一些问题,其中大多数是关于手工编写的有问题的 SQL 查询。

即使这个简单的查询在客户设备上也会出现错误。

@Query("SELECT * FROM UserAction WHERE UserAction.userId LIKE :userId " +
        " ORDER BY last_update_time DESC")
public List<UserAction> allList(String usedId);
Run Code Online (Sandbox Code Playgroud)

例外的是:

致命异常:java.lang.IllegalStateException:无法从 CursorWindow 读取第 1756 行、第 0 列。在访问游标中的数据之前,请确保游标已正确初始化。在 android.database.CursorWindow.nativeGetString(CursorWindow.java) 在 android.database.CursorWindow.getString(CursorWindow.java:438) 在 android.database.AbstractWindowedCursor.getString(AbstractWindowedCursor.java:66)

错误发生在 while 循环内生成的代码上

  while(_cursor.moveToNext()) {
    final UserAction _item;
    _item = new UserAction();
    _item.userId = _cursor.getString(_cursorIndexOfUserId); //Exception here
Run Code Online (Sandbox Code Playgroud)

android android-room

5
推荐指数
1
解决办法
1535
查看次数

标签 统计

android ×3

android-room ×1

blob ×1

list ×1

listview ×1

memory ×1

sqlite ×1