我正在尝试在pcl项目中的xamarin(C#)上构建一个sqlite数据库 . 我正在关注this教程 . 在Android实现(步骤5)我得到这些错误:
错误CS0104'环境'是'Android.OS.Environment'和'System.Environment'之间的模糊引用.AlarmSQLite.Android c:\ users \ thomas \ source \ repos \ AlarmSQLite \ AlarmSQLite \ AlarmSQLite.Android \ SQLite_Android.cs 30有效
错误CS0234名称空间'SQLite'中不存在类型或命名空间名称'Net'(您是否缺少程序集引用?)AlarmSQLite.Android c:\ users \ thomas \ source \ repos \ AlarmSQLite \ AlarmSQLite \ AlarmSQLite.Android \ SQLite_Android.cs 33有效
我使用VisualStudio2017 . 我试图删除.Net并添加了System.Environment但我得到了更多和新的错误 . 我的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using SQLite;
using Xamarin.Forms;
using AlarmSQLite.Droid;
using System.IO;
[assembly: Dependency(typeof(SQLite_Android))]
namespace AlarmSQLite.Droid
{
public class SQLite_Android : ISQLite
{
public SQLite_Android() { }
public SQLite.SQLiteConnection GetConnection()
{
var dbName = "AlarmDB.db3";
var documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
var path = Path.Combine(documentsPath, dbName);
var platform = new SQLite.Net.Platform.XamarinAndroid.SQLitePlatformAndroid();
var connection = new SQLite.Net.SQLiteConnection(platform, path);
return connection;
}
}
}
教程中的一切都是一样的 . 我究竟做错了什么?谢谢!
新错误:
错误CS0234命名空间“SQLite”中不存在类型或命名空间名称“Platform”(您是否缺少程序集引用?)AlarmSQLite.Android C:\ Users \ Thomas \ source \ repos \ AlarmSQLite \ AlarmSQLite \ AlarmSQLite.Android \ SQLite_Android.cs 33有效
错误CS0029无法将类型'SQLite.Net.SQLiteConnection'隐式转换为'SQLite.SQLiteConnection'AlarmSQLite.Android C:\ Users \ Thomas \ source \ repos \ AlarmSQLite \ AlarmSQLite \ AlarmSQLite.Android \ SQLite_Android.cs 36活动
1 回答
Error CS0104: 环境来自'Android.OS.Environment'以及'System.Environment'所以给你和歧义问题 . 只是将系统置于环境之前 .
Error CS0234: 好像你还没有添加SQLite-Async Nuget Package . 您必须在PCL以及Android项目中添加此项并再次构建项目 .
Error CS0234 & CS0029: 确保在android和pcl项目中添加了以下两个nuget包 .
然后,尝试使用Sqlite.Net,而不是使用Sqlite .
你的最终守则应该是:
别忘了调整界面 . 应该是这样的:
Note :如果不需要,可以省略Sqlite.Net.Async PCL参考 .