相关疑难解决方法(0)

SQLiteBlobTooBigException:写入数据库时​​行太大,无法放入 CursorWindow

当我尝试添加到 android 上的 sqllite DB 时,我看到上述错误。我正在使用 cloudant 库。这是堆栈跟踪:

2019-07-17 18:04:48.292 5522-5753/org.iprd.identity E/SQLiteQuery: exception: Row too big to fit into CursorWindow requiredPos=0, totalRows=1; query: SELECT docs.docid, docs.doc_id, revid, sequence, current, deleted, parent, json FROM revs, docs WHERE docs.docid=? AND revs.doc_id=docs.doc_id AND revid=? ORDER BY revs.sequence LIMIT 1
2019-07-17 18:04:48.302 5522-5522/org.iprd.identity E/DatabaseImpl: Failed to create document
    java.util.concurrent.ExecutionException: android.database.sqlite.SQLiteBlobTooBigException: Row too big to fit into CursorWindow requiredPos=0, totalRows=1
        at java.util.concurrent.FutureTask.report(FutureTask.java:123)
        at java.util.concurrent.FutureTask.get(FutureTask.java:193)
        at com.cloudant.sync.internal.documentstore.DatabaseImpl.get(DatabaseImpl.java:1084)
        at com.cloudant.sync.internal.documentstore.DatabaseImpl.create(DatabaseImpl.java:925)
Run Code Online (Sandbox Code Playgroud)

我以前从未遇到过这个问题,但是,我最近进行了更改并开始使用第三方工具来给我一些图像。使用这个新工具,图像尺寸似乎比以前大得多。我通过对图像进行 Base64 编码将这些图像作为字符串存储在我的数据库中。然而,使用这个新工具,在存储图像时,我遇到了上述异常。

我有一个单元测试,我尝试使用从该图像生成的字符串之一,但这也会引发一个错误,即字符串大小太大,甚至无法编译。

解决这个问题的最佳方法是什么?-

  1. 我想做的是将图像存储在设备本身中,并将路径存储在数据库中。

  2. 我们可以对图像进行一些压缩以减小其文件大小吗? …

java sqlite android

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

java ×1

sqlite ×1