У меня есть приложение Xamarin Forms, которое использует Entity Framework Core.Когда я запускаю и тестирую на эмуляторе все нормально.Также, когда я запускаю устройство, на котором установлена предыдущая версия, оно работает как положено.Но когда я запускаю приложение на устройстве без данных, оно падает, когда выполняется следующее:
var context = new EfCoreContext();
context.Database.Migrate();
Я впервые заметил это, когда предварительные отчеты Google не сработали на 7 из 9 устройств.Ошибка там:
*** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
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)
Довольно забавно, когда я удаляю вызов Migrate, запускаю и добавляю его снова, приложение может запуститься.Также в предварительном отчете всегда есть 2 или 3 устройства, которые могут запускать приложение без каких-либо проблем.Я могу представить, что это какая-то временная проблема или что здесь играет какой-то другой эффект.Но сбой происходит по этому вызову независимо от того, где в моем приложении я его поместил.
Я пытался получить больше информации с помощью ловушек try и глобального обработчика ошибок, который должен регистрироваться в моем файле журнала.Но, к сожалению, ничего не поймано.Есть ли способ сузить проблему, может быть основан на журнале ошибок из предварительного отчета?