Nev*_*ane 5 xamarin.android xamarin.forms entity-framework-core sqlite-net-pcl
我们有一个Xamarin.Forms项目,需要使用sqlite本地数据库来存储日期。来自不同PC的不同开发人员使用EF Core的sqlite库进行设置(vs 2019)。最初,它与Database.EnsureCreated()
功能一起使用,后来与ef core的迁移一起使用。一切都进行了一个多月。
上周,由于sqlite出现错误,Android应用突然无法在任何人的PC上启动。它显示以下错误:
致命信号11(SIGSEGV),代码1(SEGV_MAPERR)
我花了一段时间尝试各种修复和回滚,认为这是代码的问题。其中包括以下内容:
在尝试了上述修复程序和其他修复程序之后,终于在上周五(在所有PC上)升级了Java和android SDK的版本。此修复程序奏效后,当天一切都会顺利进行。在星期二,问题再次出现(没有库更新或代码更改)。更深入地了解EF Cores日志记录表明,它在尝试连接到数据库时崩溃。
该问题可以在android设备上复制,但不能在模拟器上复制。我不确定我们是否需要请求android中的一些新权限。
我终于用sqlite设置创建了一个新的xamarin表单项目。我使用了pcl库和ef核心。我仍然发现相同的错误。
这是复制问题的git枢纽https://github.com/neville-nazerane/xamarin-site
更新资料
只是我注意到的东西。早些时候,我的数据库文件名为“ main.db”。现在,无论我将该文件名更改为什么或更改任何变量。它在日志中始终将数据库名称显示为“ main”。不知道更改数据库名称是否可以解决该问题。但是,从未找到更改此数据库名称的方法。我尝试了不同的连接字符串,它只是说“数据库”和“ db”是未知键
更新资料
复制步骤:
using (var db = new AppDbContext())
{
db.Add(new Person {
Age = 55,
Name = "Neville"
});
db.SaveChanges();
Person[] alldata = db.People.ToArray();
}
Run Code Online (Sandbox Code Playgroud)
的定义Person
和AppDbContext
是相当明显的。因此,本着不让问题太长的精神,我不在此发布。但是,如果需要,我也可以发布它们。
这是 Xamarin.Forms 和 Mono 的错误。
它从几个月前就被检测到,它已被修复,但随后出现了一些回归(使用 VS 2019 v16.1)。
即使使用最新版本(v16.1.2),该错误仍然发生,因此我们需要等待修复。
资料来源:
https://github.com/mono/mono/issues/14170
https://github.com/xamarin/xamarin-android/issues/3112
https://github.com/xamarin/xamarin-android/issues/2920
归档时间: |
|
查看次数: |
570 次 |
最近记录: |