【发布时间】:2015-12-23 14:11:39
【问题描述】:
我在我的一个 Android 项目中使用 Sqlite 数据库。除了一加二设备之外,它在所有设备上都能正常工作。
我在尝试打开数据库时遇到异常。这是崩溃日志。
12-23 19:14:35.235: E/SQLiteLog(3133): (11) database corruption at line 53216 of [9491ba7d73]
12-23 19:14:35.235: E/SQLiteLog(3133): (11) statement aborts at 7: [SELECT locale FROM android_metadata UNION SELECT NULL ORDER BY locale DESC LIMIT 1]
12-23 19:14:35.237: E/SQLiteDatabase(3133): Failed to open database '/data/data/com.mycompany.myapp/databases/alcochange.sqlite'.
12-23 19:14:35.237: E/SQLiteDatabase(3133): android.database.sqlite.SQLiteException: Failed to change locale for db '/data/data/com.mycompany.myapp/databases/myapp.sqlite' to 'en_US'.
请click here查看完整的崩溃日志
我在这里看到过类似的其他问题,我几乎尝试了所有答案,但没有任何效果。 我试过this 和this。
编辑:该设备在Oxygen Lollipop 上运行。
【问题讨论】:
-
设备型号并没有告诉我们分配、固件、ROM 等。因为 OnePlus 设备通常运行许多不同的配置,所以更有帮助。
-
这条路径
/data/data/com.zanec.dryjanuary/databases/alcochange.sqlite/可能不存在。检查context.getDatabasePath(/data/data/com.zanec.dryjanuary/databases/alcochange.sqlite/)返回File类型。 -
您的崩溃日志中有
E/SQLiteDatabase(6278): Caused by: ???一行吗? -
@MadhukarHebbar 我已经检查过了,没问题。这只发生在一加二手机上,在其他手机上也能正常工作。
-
@naXa 是的,有。原因:android.database.sqlite.SQLiteDatabaseCorruptException:数据库磁盘映像格式错误(代码11)。
标签: android sqlite oneplustwo