2014-10-03 86 views
3

我想用Xamarin来使用Akavache。 我已经从NuGet安装Akavache包到Android和Windows Phone项目。Akavache没有这样的表:SchemaInfo

初始化:

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

三线引发错误(在两个Android和Windows Phone的目标):

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

我在做什么错?

在此先感谢:)

+0

看到相同的,但在TinyIoC注册的点: 'TinyIoCContainer.Current.Register (BlobCache.UserAccount “UserLocalStorage”);' – DennisWelu 2014-10-13 02:44:55

+0

我在Windows控制台应用程序中遇到了同样的问题,所以我不认为它与特定设备,模拟器或xamarin有关。 – 2014-12-10 21:54:03

回答

0

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

Mac上iOS模拟器文件的位置在iOS8中已更改。以下文章标识了ios8和ios8之前的位置:Document Directory Path of iOS 8 Beta Simulator。 (不幸的是iOS8上使得它很有点棘手找到。)

可能同一种古怪的可以在Android模拟器发生......

+0

我在真实设备上尝试了这种方法,但仍然出现错误。 – 2014-10-13 22:33:31

1

唯一的例外是第一个变化异常,但被处理。所以只需F5并继续。 Paul Betts在这里解释了推理https://github.com/akavache/Akavache/issues/195#issuecomment-66576874

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

-1

我遇到了使用Xamarin的相同问题。我的修复是关闭System.Exception断点。