我有一个使用实体框架核心的Xamarin Forms应用程序。当我启动并在模拟器上进行测试时,一切都很好。同样,当我在运行了早期版本的设备上启动时,它也会按预期工作。但是,当我在没有数据的设备上运行该应用程序时,执行以下命令会导致崩溃:
var context = new EfCoreContext();
context.Database.Migrate();
当Google的预发布报告在9台设备中的7台上失败时,我首先注意到了它。那里的错误是:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
Build fingerprint: 'google/walleye/walleye:9/PQ2A.190405.003/5310204:user/release-keys'
Revision: 'MP1'
ABI: 'arm64'
pid: 12770, tid: 12770, name: utions.moneyfox >>> com.applysolutions.moneyfox <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x20
Cause: null pointer dereference
x0 0000000000000000 x1 0000000000000000 x2 0000000000000000 x3 0000007fec923bd0
x4 0000007f29ade9a0 x5 0000007fec923c60 x6 0000000000000000 x7 0000000000000000
x8 0000000000000000 x9 0000000000000000 x10 0000000000000000 x11 0000000000000000
x12 0000000000000000 x13 0000000000000000 x14 00000000ffffffff x15 0000000000000000
x16 0000007f1bd1d1f8 x17 0000007f1bb44670 x18 0000000000000008 x19 0000007f1bd34560
x20 0000000000000002 x21 0000000000000000 x22 0000000000000000 x23 000000000000007f
x24 0000000000000000 x25 0000000000000000 x26 0000007fec923d50 x27 0000007f16bdda34
x28 0000007f29ade000 x29 0000007fec923070
sp 0000007fec923070 lr 0000007f1ba8b658 pc 0000007f1bb44678
backtrace:
#00 pc 0000000000177678 /data/app/com.applysolutions.moneyfox-tqWhOmZmoDQ8yd5YLjvTqg==/lib/arm64/libmonosgen-2.0.so (mono_jit_info_get_method+8)
很有趣,当我删除“迁移”呼叫时,启动并再次添加它,应用程序即可启动。此外,在启动前报告中,总是有2或3台设备可以启动应用程序而不会出现任何问题。我可以想象这是某种时序问题,或者这里还有其他影响。但是无论我在应用程序中的什么位置,崩溃始终是该调用的原因。
我尝试通过尝试捕获和全局错误处理程序获取更多信息,这些信息应该记录到我的日志文件中。但不幸的是,没有发现任何问题。 有没有一种方法可以缩小问题的范围,可能基于启动前报告中的错误日志?
答案 0 :(得分:0)
好的,似乎在Xamarin.Android中是个问题:https://developercommunity.visualstudio.com/content/problem/580820/xamarin-problem-following-update-to-vs2019-161.html
似乎已在16.1.4中修复。