Android数据库错误-getWriteableDatabase

Android数据库错误-getWriteableDatabase,android,sqlite,Android,Sqlite,所以我在市场上有一份申请。几个月来一直运转良好。我已经用小错误修复更新了两次,并且没有对数据库做任何更改 我的一些用户出现以下错误: android.util.Log$TerribleFailure: Can t downgrade read-only database from version 2 to 1: /data/data/myapp/databases/MyAppDB at android.util.Log.wtf(Log.java:275) at android.util.Log.

所以我在市场上有一份申请。几个月来一直运转良好。我已经用小错误修复更新了两次,并且没有对数据库做任何更改

我的一些用户出现以下错误:

android.util.Log$TerribleFailure: Can t downgrade read-only database from version 2 to 1: /data/data/myapp/databases/MyAppDB
at android.util.Log.wtf(Log.java:275)
at android.util.Log.wtf(Log.java:254)
at android.database.sqlite.SQLiteOpenHelper.getWritableDatabase(SQLiteOpenHelper.java:129)
正如我提到的,如果有任何更新,数据库没有任何变化。当调用getWriteableDatabase方法时,它显然会崩溃。我不明白为什么会发生这种错误

我最好的猜测是,用户的手机已经没有空间了,因此无法打开可写数据库,从而导致应用程序崩溃


有什么想法吗?

sqlite数据库有一个版本号。打开数据库时会设置版本号

例如,如果使用
SQLiteOpenHelper
,则构造函数具有
int version
参数

发生错误的原因是,在用户设备上设置了版本为2的旧数据库,但在程序更新时,您试图打开该旧数据库,请求版本为1。这是不允许的


只需将更新程序的版本设置为2或更多。

我不明白的是,该版本是如何更改为2版的。我将初始版本设置为1,但从未将其更改为2。那怎么可能呢?而且这种情况只发生在少数用户身上,而不是所有下载了更新的用户。