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

问题描述 投票:3回答:5

我正在尝试实现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);

错误:

'SQLite.SQLiteConnection'的类型初始值设定项引发了异常。

内在例外:

System.Exception:这是'诱饵'。您可能需要将一个SQLitePCLRaw.bundle_ * nuget包添加到您的平台项目中。 at SQLitePCL.Batteries_V2.Init()[0x00000] in <9baed10c674b49e0b16322f238b8ecc1>:0 in 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>
c# xamarin xamarin.android sqlite-net-pcl
5个回答
0
投票

管理解决它。问题是我在两个不同的项目中使用Nuget包,而我只更新了其中一个。使用相同版本的SQLite Nuget和Clean下载其他项目,Rebuild解决了这个问题。

© www.soinside.com 2019 - 2024. All rights reserved.