ICS中的荒谬SQLite错误

时间:2012-08-31 00:23:41

标签: android sqlite android-4.0-ice-cream-sandwich

我已经使用here的修改实现了here找到的代码。

这一切似乎在Android 2.2模拟器上运行良好,但是在实际的ICS设备和Jellybean模拟器上,我似乎得到以下(奇怪的)错误:

android.database.sqlite.SQLiteException:无法将数据库从版本300300降级到12

我的数据库版本没有办法300300,我尝试删除并重新安装应用程序,但它似乎没有什么区别。有关为什么会发生这种情况的任何线索?

1 个答案:

答案 0 :(得分:1)

不久前我也有同样的问题。它似乎只发生在某些设备上,它们似乎编译了内置的SQLite库,默认情况下启用了预写日志记录(WAL)。

每当您尝试以只读模式打开数据库时,都会出现问题,因为无法以只读模式打开已启用WAL的数据库。解决方案是避免使用任何尝试以只读模式打开数据库的SQLite API,例如getReadableDatabase或SQLiteDatabase.OPEN_READONLY标志。相反,每当在Android上打开SQLite数据库时,请尝试使用getWritableDatabase或SQLiteDatabase.OPEN_READWRITE标志。