我在android手机上运行一个小而关键的应用程序。它使用sqlite数据库作为主要数据存储。经过一年多近乎完美的运行,几天前由于臭名昭著的“数据库磁盘映像格式错误”问题,它突然在一个关键点崩溃。这导致了一些尴尬,因为我无法访问系统修复它几个小时。
我知道这种情况应该very rare。但我现在正在编写一些代码,以便更优雅地从这种情况中恢复过来,因为我负担不起再次发生这种情况(这可能是由于手机的硬件,在这种情况下,它现在可能开始更频繁地发生-但我再也承受不起崩溃)。
但是,为了测试我的恢复代码,我需要生成相同的错误,并且由于一个愚蠢的错误,我丢失了创建问题的数据库的副本。
我的问题是-我是否可以对sqlite数据库执行某些操作,从而导致“数据库磁盘映像格式不正确”错误?然后我可以测试我的恢复代码。

最佳答案

你能做到的。
只需在资产中复制工作数据库文件。
然后,一旦应用程序运行,通过逐字节的代码复制数据库文件,并在复制时丢弃一些字节,您将得到损坏的数据库。
你也可以试试别的:
只需创建一个文本文件。然后将其重命名为*.db文件,并尝试在android中打开该文件,假设它是一个数据库文件。我希望你也能得到同样的例外。

10-05 23:39
查看更多