无法在Android上创建SQLite表

时间:2018-04-24 18:20:51

标签: android sqlite xamarin.forms xamarin.android android-sqlite

关于如何在本地数据库中存储数据,我一直在完整地关注这个tutorial。在iOS上一切正常,不幸的是在android上我在我的数据库文件中创建一个表时遇到异常。创建表的方法是:

public CalcDatabase(string dbPath)
{
  database = new SQLiteAsyncConnection(dbPath);
  database.CreateTableAsync<Calculation>().Wait();
}

我在Android上获取数据库路径的自定义类如下:

public class LocalFileHelper : IFileHelper
{
     public string GetLocalFilePath(string filename)
     {
         var path = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
         path = Path.Combine(path, filename);

         if(!Directory.Exists(path))
         {
            Directory.CreateDirectory(path);
         }

         return path;
     }
}

这是我从SQLite获得的错误:

  

无法打开数据库文件:/data/user/0/com.companyname.XX/files/Calculation.db3(CannotOpen)

我尝试过针对几种不同的API,我尝试清理并重建我的解决方案,并尝试在整个解决方案中重新安装SQLite-net-pcl NuGet包。什么都行不通。

我已经读过,它与权限有关,但是,我确实觉得很奇怪官方微软的教程如果不是这样的话就不会涵盖这个。

1 个答案:

答案 0 :(得分:4)

您需要查看设备或模拟器上的外部存储的写入和读取的Android权限声明(和授予)。

一定够了。

确保删除binobj文件夹,清理并重建解决方案以删除应用程序编译中的任何缓存数据。