gpt4 book ai didi

c# - 'SQLite.SQLiteConnection' 的类型初始值设定项引发异常

转载 作者:行者123 更新时间:2023-12-02 10:36:15 37 4
gpt4 key购买 nike

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

我正在关注这个:https://developer.xamarin.com/guides/android/application_fundamentals/data/part_3_using_sqlite_orm/

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

如果不出现后续错误,我就无法通过以下起始代码:var db = new SQLiteConnection (dbPath);

错误:

The type initializer for 'SQLite.SQLiteConnection' threw an exception.

内部异常:

System.Exception: This is the 'bait'. You probably need to add one of the SQLitePCLRaw.bundle_* nuget packages to your platform project.
at SQLitePCL.Batteries_V2.Init () [0x00000] in <9baed10c674b49e0b16322f238b8ecc1>:0 at SQLite.SQLiteConnection..cctor () [0x00000] in /Users/vagrant/git/src/SQLite.cs:169 }

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

SQLitePCLRaw.provider.e_sqlite3.android
SQLitePCLRaw.lib.e_sqlite3.android

我尝试安装:

SQLitePCLRaw.bundle_e_sqlite3

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

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但最终没有成功。

不幸的是,诸如“它只是有效”、“不确定我做了什么”、“清理/重建”之类的废话是我见过的唯一答案,例如上一个链接,其他 SO 帖子,如 Xamarin SQLite "This is the 'bait'"

这是我的 Android 项目的 package.config:

<?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:

<?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>

最佳答案

我讨厌让自己陷入“我不知道如何解决它”的困境,但事实就是这样。我开始清理并复制粘贴代码并重新拉回 Nuget 包,一切正常。也许我最初忽略了一些东西,也许版本不匹配,我不能说。但是,我尝试添加 Trevor 提到的依赖项,问题仍然存在,所以我认为我没有遗漏任何东西。

关于c# - 'SQLite.SQLiteConnection' 的类型初始值设定项引发异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46915404/

37 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com