Akavache没有这样的表:SchemaInfo

时间:2014-10-03 11:50:06

标签: android windows-phone xamarin akavache

我正在尝试将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

我做错了什么?

提前致谢:)

3 个答案:

答案 0 :(得分:1)

该异常是第一个更改异常,但已被处理。所以只需F5并继续。保罗贝茨解释了这里的推理https://github.com/akavache/Akavache/issues/195#issuecomment-66576874

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

答案 1 :(得分:0)

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

iOS8中iOS模拟器文件的位置已更改。以下帖子同时标识了pre-ios8和ios8位置:Document Directory Path of iOS 8 Beta Simulator。 (不幸的是ios8使得查找起来相当棘手。)

Android模拟器可能会出现同样的怪异......

答案 2 :(得分:0)

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