首页 > 解决方案 > xamarin.ios 中的 sqlite 损坏异常

问题描述

尝试访问 sqlite 数据库时,我在 ios 中不断崩溃。我的应用程序有后台同步过程,它尝试获取数据并将其存储在设备的 sql 数据库中。一些如何在 IOS 设备中随机崩溃。

日志之一是:

SQLite.SQLiteException:损坏

SQLiteCommand.ExecuteNonQuery () /Users/vagrant/git/src/SQLite.cs:2334 SQLiteConnection.Execute (System.String query, System.Object[] args) /Users/vagrant/git/src/SQLite.cs:673 DataAccessBase .TruncateData (System.Boolean isSyncRestarted) /Users/yagnaios/Documents/Documents - Venu 的 MacBook Pro/Dev_Latest/TCRMobile/TCRMobile/DataAccess/DataAccessBase.cs:93 Home+d__16.MoveNext () /Users/yagnaios/Documents/Documents - Venu的MacBook Pro/Dev_Latest/TCRMobile/TCRMobile/Pages/Home.cs:307 ExceptionDispatchInfo.Throw () /Library/Frameworks/Xamarin.iOS.framework/Versions/11.6.1.3/src/mono/mcs/class/referencesource/mscorlib /system/runtime/exceptionservices/exceptionservicescommon.cs:152

该应用程序在 android 中运行良好,但在 IOS 中是一个严重的问题,因为一旦数据库损坏,我们将无法使用该应用程序。

标签: iossqlitexamarin.formsxamarin.iosios-sqlite

解决方案


您需要配置数据库以序列化其对文件的访问。确保您远离代码中的线程/任务,或者确保一次只有一个线程尝试写入数据库。

有关更多信息,您可以在此处访问


推荐阅读