ios - 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 中是一个严重的问题,因为一旦数据库损坏,我们将无法使用该应用程序。
解决方案
您需要配置数据库以序列化其对文件的访问。确保您远离代码中的线程/任务,或者确保一次只有一个线程尝试写入数据库。
有关更多信息,您可以在此处访问
推荐阅读
- google-apps-script - 在 Clockify 中启动计时器的 Google 脚本
- javascript - javascript中文件中对象的单个实例
- javascript - func.apply with THIS 适用于任何对象
- amazon-web-services - 在 aws route 53 上为 Spot 实例创建记录集
- java - 读取 10 个 csv 文件并将其存储在数据库中
- c# - 连接到服务器时出现 gRPC RpcException
- php - 尝试将 $_SESSION 参数化为查询的解析错误
- android - 我无法通过单击 Android Studio 中的按钮来获取日志事件
- dataframe - Spark中的内存分配(df)
- c# - Redis Serializable 和 DataContract 为同一类型