首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >“SQLite.SQLiteConnection”的类型初始化程序引发了一个异常

“SQLite.SQLiteConnection”的类型初始化程序引发了一个异常
EN

Stack Overflow用户
提问于 2017-10-24 16:16:59
回答 13查看 19.7K关注 0票数 16

我正在尝试实现对SQLite的难以置信的基本使用。我有一个Button和一个EditText。我想存储EditText OnClick的内容。

我正在跟踪这个:orm/

https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/databases/

在没有后续错误的情况下,无法传递以下启动代码:var db = new SQLiteConnection (dbPath);

错误:

“SQLite.SQLiteConnection”的类型初始化程序引发了一个异常。

内部例外:

System.Exception:这是“诱饵”。您可能需要向平台项目中添加一个SQLitePCLRaw.bundle_* nuget包。 在SQLitePCL.Batteries_V2.Init () 0x00000在<9baed10c674b49e0b16322f238b8ecc1>:0中的SQLite.SQLiteConnection..cctor () 0x00000在/Users/迷航/git/src/SQLite.cs:169}

我已经在PCL和Android项目上安装了NuGet包。我看到安装了以下软件包:

代码语言:javascript
运行
复制
SQLitePCLRaw.provider.e_sqlite3.android
SQLitePCLRaw.lib.e_sqlite3.android

我试过安装:

代码语言:javascript
运行
复制
SQLitePCLRaw.bundle_e_sqlite3

如前所述,代码是最基本的实现:

代码语言:javascript
运行
复制
try
{
    string dbPath = Path.Combine(System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal), "TestDB-DEV.db3");

    var db = new SQLiteConnection(dbPath);
    db.CreateTable<PersonName>();
}

我在这方面花了几天时间,尝试了许多资源,比如:https://forums.xamarin.com/discussion/87289/sqlite-net-pcl-bait-issue,但最终没有成功。

不幸的是,像“它只是起作用”、“不知道我做了什么”、“清理/重建”这样的无稽之谈是我看到的唯一答案,例如以前的链接,其他类似Xamarin SQLite "This is the 'bait'"的帖子

这是我的安卓项目的package.config

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="sqlite-net-pcl" version="1.4.118" targetFramework="monoandroid60" />
  <package id="SQLitePCLRaw.bundle_green" version="1.1.5" targetFramework="monoandroid60" />
  <package id="SQLitePCLRaw.core" version="1.1.5" targetFramework="monoandroid60" />
  <package id="SQLitePCLRaw.lib.e_sqlite3.android" version="1.1.5" targetFramework="monoandroid60" />
  <package id="SQLitePCLRaw.provider.e_sqlite3.android" version="1.1.5" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Animated.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Design" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v4" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.AppCompat" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.CardView" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.MediaRouter" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.v7.RecyclerView" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Android.Support.Vector.Drawable" version="23.3.0" targetFramework="monoandroid60" />
  <package id="Xamarin.Forms" version="2.4.0.282" targetFramework="monoandroid60" />
</packages>

以下是PCL项目的package.config:

代码语言:javascript
运行
复制
<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="sqlite-net-pcl" version="1.4.118" targetFramework="portable45-net45+win8+wpa81" />
  <package id="SQLitePCLRaw.bundle_green" version="1.1.5" targetFramework="portable45-net45+win8+wpa81" />
  <package id="SQLitePCLRaw.core" version="1.1.5" targetFramework="portable45-net45+win8+wpa81" />
  <package id="Xamarin.Forms" version="2.3.4.247" targetFramework="portable45-net45+win8+wpa81" />
</packages>
EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2017-10-31 23:25:43

我不想把自己放在“我不知道怎么修好它”的船上,但事情就是这样发生的。我开始清理和copy+pasted的代码,并重新提取Nuget包和所有的工作刚刚开始。也许我一开始忽略了一些东西,也许有版本错配,我不能说。但是,我尝试添加Trevor提到的依赖项,问题仍然存在,所以我认为我没有遗漏任何东西。

票数 14
EN

Stack Overflow用户

发布于 2019-11-21 09:18:21

我通过将"sqlite-net-pcl"包降级到最后一个稳定版本(v1.7.302-beta→v1.6.292)解决了同样的问题。

票数 8
EN

Stack Overflow用户

发布于 2020-01-21 12:03:04

在我的例子中,我得到了错误,因为我丢失了Windows窗体应用程序的"bin“文件夹中的”运行时“文件夹。

在存储可执行文件的文件夹下面应该有这样的子文件夹等级:

  • 运行时\win-arm本机
  • 运行时\win-x64本机
  • 运行时\win-x86\本机

每个文件夹中都有一个"e_sqlite3.dll“文件。

在我将这些文件添加到可执行文件所在的文件夹后,错误就消失了。实际上,如果使用适当的SQLite NuGet包,则会自动复制输出文件夹。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46915404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档