我是android和xamarin的新手。最近我在xamrarin
示例TaskyPortable
之后创建了一个Android应用。问题是每当下面的代码执行时抛出错误。
public override void OnCreate()
{
base.OnCreate();
var sqliteFilename = "ToDoItemDB.db3";
string libraryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var path = Path.Combine(libraryPath, sqliteFilename);
conn = new SQLiteConnection(path);
每当它使用给定路径调用新的SQLiteConnection时,它都会抛出
" System.TypeInitializationException:类型初始值设定项 ' SQLite.SQLiteConnection'抛出异常。"
我做错了什么?代码几乎与TaskyPortable类似。 我搜索了很多,但没有找到任何东西。
请帮助。
P.S。 :这个问题已经被问到here,我已经检查了答案。我也在droid项目中添加了SQLite.net的参考资料。但仍面临这个问题。
答案 0 :(得分:1)
此代码正常运行
private SQLiteConnection conn;
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
Forms.Init(this, bundle);
var sqliteFilename = "ToDoItemDB.db3";
string libraryPath = System.Environment.GetFolderPath(System.Environment.SpecialFolder.Personal);
var path = Path.Combine(libraryPath, sqliteFilename);
conn = new SQLiteConnection(path);
//create table
conn.CreateTable<Todo>();
LoadApplication(new App());
}
检查这些包是否在package.config中。也许更好的是删除Sqlite包并只安装sqlite-net-pcl,这是安装其余的sqlite包
<package id="sqlite-net-pcl" version="1.3.1" targetFramework="monoandroid60" />
<package id="SQLitePCLRaw.bundle_green" version="1.1.2" targetFramework="monoandroid60" />
<package id="SQLitePCLRaw.core" version="1.1.2" targetFramework="monoandroid60" />
<package id="SQLitePCLRaw.lib.e_sqlite3.android" version="1.1.2" targetFramework="monoandroid60" />
<package id="SQLitePCLRaw.provider.e_sqlite3.android" version="1.1.2" targetFramework="monoandroid60" />