在我的应用程序中,一些用户会出现数据库磁盘镜像损坏的错误(code 11)。我通过谷歌搜索了解到,当数据库镜像损坏时,Android 会将其删除并重新创建新的数据库文件,这正是一些用户所遇到的情况。
问题是,在10个用户中,仅有2-3个用户的数据库被重新创建,而我无法复现此问题。我不知道为什么会发生这种情况。如果对于所有10个用户来说数据库都已损坏,则为什么Android不会为所有10个用户重新创建数据库?只有那些2-3个用户会重新创建?是否有人可以指点我如何处理这个问题?
更新:我仍然无法复现这个问题,但我能够得到一些日志。以下是它们:
08-28 08:35:44.847 E/SQLiteLog(15123): (11) database corruption at
line 65088 of [00bb9c9ce4]
08-28 08:35:44.847 E/SQLiteLog(15123): (11) statement aborts at 67
08-28 08:35:44.857 E/DefaultDatabaseErrorHandler(15123): Corruption
reported by sqlite on database:
/data/data/com.retail.posmaster/databases/GrofersRetail
08-28 08:35:45.377 D/dalvikvm(15123): GC_EXPLICIT freed 2639K, 62%
free 7479K/19228K, paused 4ms+8ms, total 82ms
08-28 08:35:45.727 E/DefaultDatabaseErrorHandler(15123): !@ Delete old
.mark file
08-28 08:35:45.737 E/DefaultDatabaseErrorHandler(15123): !@ DB
Corruption has happened before this
08-28 08:35:45.757 E/DefaultDatabaseErrorHandler(15123): !@ DB
Corruption has happened before this