【问题标题】:Can't create an SQLite table on Android无法在 Android 上创建 SQLite 表
【发布时间】:2018-10-05 02:44:58
【问题描述】:

我一直在关注这个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 包。没有任何效果。

我已经读过,它与权限有关,但我确实觉得奇怪的是,如果它是一个东西,微软官方教程没有涵盖这个。

【问题讨论】:

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


    【解决方案1】:

    您需要查看 Android 权限声明(和授权),以便在您的设备或模拟器上对外部存储进行写入和读取。

    应该够了。

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

    【讨论】:

      猜你喜欢
      • 2012-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-04
      • 1970-01-01
      • 1970-01-01
      • 2011-07-10
      • 1970-01-01
      相关资源
      最近更新 更多