当我尝试向Android上的Sqlite数据库添加内容时,出现了上述错误。我正在使用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)
我以前从未遇到过这个问题,但最近做了一个改变并开始使用第三方工具来获取一些图片。使用这个新工具,图片尺寸似乎比以前大得多。我通过对图像进行Base64编码将这些图像存储在我的数据库中作为字符串。然而,使用这个新工具,在存储图像时,我收到了上述异常。
我有一个单元测试,我试着使用从这张图片生成的字符串之一,但是它也会抛出一个错误,说字符串太大,甚至无法编译。
解决这个问题的最佳方法是什么?-
1.我想做的是将图像存储在设备本身中,只需在数据库中存储路径。 2.我们是否可以对图像进行某种压缩以减小其文件大小? 3.是否可能调整一些数据库设置以确保它可以处理更大的图像大小?
提前感谢!