较新的Android版本会破坏副本上的sqlite数据库吗?

时间:2018-02-01 16:15:10

标签: android sqlite android-sqlite

我正在对其移动应用中使用的客户端sqlite数据库进行更新。出于某种原因,我正在研究这个最新的更新,在较新的Android设备上,它表示数据库在尝试执行某些查询时已损坏。 (我说一些是因为它从数据库中加载了初始类别,但是当我尝试查看子类别或进行产品搜索时,这就是它何时中断。)

当我在Pixel手机上运行时,我遇到了这些错误:

  

E / ProductDatabase:数据库已创建   E / SQLiteLog:(11)[8201f4e1c5]第61982行的数据库损坏   E / SQLiteLog:(11)语句在17处中止:[SELECT cast(Name as text)as Name FROM ProductType ORDER BY SortOrder]数据库磁盘映像格式错误   E / DefaultDatabaseErrorHandler:sqlite在数据库上报告的损坏:/data/user/0/com.client.client/databases/products.sqlite   E / DefaultDatabaseErrorHandler:删除数据库文件:/data/user/0/com.client.client/databases/products.sqlite

但是,

  • 适用于较旧的Android设备(如Nexus 5)
  • 适用于ios
  • 当我做完整性检查时,没关系。
  • 在多个sqlite查看器中打开正常。

所以我非常相信它不会成为一个损坏的sqlite文件的问题。我昨天在一个论坛上看到了一些关于它如何破坏副本的事情,或者它可能是新版Android版的权限问题,但我不能为我的生活,再次找到这个页面或任何其他提到这个的页面。

可能发生什么事?我已经清理并重建了项目并从仿真手机中无数次卸载了应用程序,在Java中使用数据库版本,尝试删除数据库onUpgrade并且​​没有任何作用。我不是一个Android开发人员,只是一个沮丧的前端开发人员试图进行一些简单的数据库更新......

0 个答案:

没有答案