什么可以导致Android上的SQLite错误代码778

我使用ACRA进行错误报告,在过去的30天里,我得到了6个(我有成千上万的用户),崩溃报告与此类似:

android.database.sqlite.SQLiteDiskIOException: disk I/O error (code 778)
at android.database.sqlite.SQLiteConnection.nativeExecuteForLastInsertedRowId(Native Method)
at android.database.sqlite.SQLiteConnection.executeForLastInsertedRowId(SQLiteConnection.java:931)
at android.database.sqlite.SQLiteSession.executeForLastInsertedRowId(SQLiteSession.java:788)
at android.database.sqlite.SQLiteStatement.executeInsert(SQLiteStatement.java:86)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1469)
at android.database.sqlite.SQLiteDatabase.replaceOrThrow(SQLiteDatabase.java:1411)
 :

这些发生在我的应用程序的各个部分.所有设备都是运行Android 4.1.2的三星设备.我怀疑是一个三星的错误,但我有什么办法可以缓解这个问题吗?

最佳答案 我在读取以前编写的没有错误的4.1.2的sqlite行后得到IllegalStateException.这仅适用于某些列值.大多数列值都可以正常工作另外,我可以使用相同的数据库并在Android 2.3以及PC上的sqlite版本上正常阅读.此外,我在4.1.2设备上安装了一个sqlite浏览器(aSQLiteManager),它在尝试读取该表时崩溃了.我只能假设这是与4.1.2一起部署的sqlite(3.7.11)版本中的错误.我将向sqlite团队报告此事.

点赞