Кто-нибудь знает хороший способ справиться с этим?
Ну, если ваша база данных повреждена, она повреждена.Вы, вероятно, не сможете это исправить, если не создадите заново с нуля.Но если вы хотите проверить, является ли он действительным, прежде чем что-то делать с ним, просто обратитесь к этому сообщению: Android: Проверьте, является ли файл действительной базой данных SQLite
РЕДАКТИРОВАТЬ: Хорошо, кажется, что можно исправить базу данных SQLite , но это действительно зависит от того, насколько она повреждена, поэтому есть вероятность, что вы не будете писать общий код для их исправления.
Кроме того, что было бы хорошим способом воспроизвести это - так как я могу элегантно испортить базу данных?
Вам придется воспроизводить ее на рутованном телефоне, потому чтовы не сможете повредить базу данных с помощью стандартных операторов SQLite (они специально созданы для предотвращения этого).
Возьмите фиктивный телефон (или эмулятор), затем root и получите доступ к этому файлу:
//data/data/<Your-Application-Package-Name>/databases/<your-database-name>
Вы можете открыть его в любом редакторе и связываться с ним (удалить связку)из линий затем сохраните его).Скорее всего, это повредит файл, и вы получите SQLiteDatabaseCorruptException