Мой приложение работало нормально в режиме отладки, но в режиме выпуска приложение аварийно завершало работу в тот момент, когда был обнаружен тег NFC и прочитано кэшированное сообщение ndef.
Ниже приведен код, который работал в режиме DEBUG, но приложение вышло из строя в RELEASE:
Код: Выделить всё
public void OnTagDiscoveder(Tag tag)
{
NdefMessage ndefMessage = null;
try
{
var ndef = Ndef.Get(tag);
ndefMessage = ndef.CachedNdefMessage; // Probably some low-level null reference problem.
}
catch (Exception ex)
{
// omitted for brevity
}
}
Код: Выделить всё
public void OnTagDiscovered(Tag tag)
{
NdefMessage ndefMessage = null;
try
{
if (Ndef.Get(tag) is Ndef ndef)
{
ndefMessage = ndef.CachedNdefMessage; // Probably some low-level null reference problem is solved.
// omitted for brevity
}
}
catch (Exception ex)
{
// omitted for brevity
}
}
Вот лог-файл отладки:

Вот лог-файл RELEASE:

Может быть, кто-нибудь объяснит мне получше, что происходит? Или хотя бы перенаправить меня на какие-нибудь источники? Есть ли способ предвидеть подобные проблемы в будущем? Что мне следует знать, чтобы делать/или не делать? Потому что решение такого рода проблем было для меня чем-то новым и заняло несколько часов (и по сути это была просто проблема с нулевой ссылкой, которая обычно решается за несколько минут).
Подробнее здесь: https://stackoverflow.com/questions/784 ... in-release