3

我正在尝试将 Akavache 与 Xamarin 一起使用。我已将 NuGet 中的 Akavache 包安装到 Android 和 Windows Phone 项目。

初始化:

BlobCache.ApplicationName = "MyApp4";
BlobCache.EnsureInitialized();
BlobCache.LocalMachine.InsertObject("key", "Value");

第三行引发错误(在 Android 和 Windows Phone 目标上):

Akavache.Sqlite3.Internal.SQLiteException: no such table: SchemaInfo

我究竟做错了什么?

提前致谢 :)

4

3 回答 3

1

该异常是第一次更改异常,但已被处理。所以只需 F5 并继续。Paul Betts 在这里解释了原因https://github.com/akavache/Akavache/issues/195#issuecomment-66576874

“是的,所以为了解释这是做什么的,它正在寻找一个我们内部用来进行迁移的表(这样我们就可以在不破坏现有数据的情况下更改 Akavache 的磁盘格式);在新数据库中,这个表永远不会找到了,所以我们有一个第一次机会例外。”

于 2015-04-17T21:35:20.537 回答
0

我在 Xamarin.iOS 中遇到了这个问题。它得到了“修复”,但可能不是同一个原因。虽然我对“为什么”没有完整的解释,但对我来说,问题似乎是模拟器文件中的问题。通过放弃所有保存的模拟器状态文件,问题就消失了。奇怪的是模拟器“重置内容和设置......”还不够好,也不是只是切换到新的模拟器。(也没有重新启动模拟器/XamStudio,也没有完全清理/重建等。)当我清除模拟器隐藏文件夹中找到的所有模拟器的所有文件时,它开始工作......或者它可能是我同时牺牲的鸡。可能是鸡。

Mac 上 iOS 模拟器文件的位置在 iOS8 中发生了变化。以下帖子同时确定了 ios8 之前的位置和 ios8 位置:iOS 8 Beta Simulator 的文档目录路径。(不幸的是 ios8 让它很难找到。)

在 Android 模拟器中可能会发生同样的怪事......

于 2014-10-13T03:38:28.383 回答
0

我在使用 Xamarin 时遇到了同样的问题。我的解决方法是关闭 System.Exception 断点。

于 2017-05-09T14:50:20.960 回答