最新消息:iOS编程开发交流群(6906921) ,Mac.Cocoa开发交流群(7758675) 欢迎iOS/macOS开发编程爱好及学习者加入!

Android开发之图片写入到Sqlite读取崩溃

Android 天狐 5344浏览 0评论

最近写个本地App blob,需要把图片放到android的sqlite中就行读写。测试发现,有的图可以正常保存显示,有的图保存后,select会导致app崩溃。崩溃原因为:

java.lang.IllegalStateException: Couldn't read row 0, col 0 from CursorWindow. Make sure the Cursor is initialized correctly before accessing data from it.

谷歌了很多,发现导致导致Cursor的原因就几个,列不存在,Cursor错误,CursorWindow size问题。

研究一番发现,Android SQLite CursorWindow指定了一个最大为2MB的config_cursorWindowSize值。

在Android源码中config_cursorWindowSize值定义如下:
sdk\platforms\android-23\data\res\values\configs.xml:

<!-- When a database query is executed, the results retuned are paginated in pages of size (in KB) indicated by this value -->
<integer name="config_cursorWindowSize">2048</integer>

 

显然这个值是写死的,不能通过app配置其大小,所以 要么改变别人 要么改变自己。。乖乖压缩下图片存储。终于正常了。

 

网上随手搜了个图片压缩类,改了改。

先进行像素尺寸压缩,在进行磁盘质量压缩!完美。

 

转载请注明:天狐博客 » Android开发之图片写入到Sqlite读取崩溃

微信 OR 支付宝 扫描二维码
为天狐 打赏
非常感谢你的支持,哥会继续努力!
发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址