MAUI Android работает в режиме DEBUG, но вылетает в режиме RELEASEC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 MAUI Android работает в режиме DEBUG, но вылетает в режиме RELEASE

Сообщение Anonymous »

Этот вопрос на самом деле не о том, как решить проблему (поскольку я ее уже решил), но я немного не понимаю, что происходит и чего мне не хватает?
Мой приложение работало нормально в режиме отладки, но в режиме выпуска приложение аварийно завершало работу в тот момент, когда был обнаружен тег 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
}
}
Ниже приведен фиксированный код, который отлично работает в DEBUG, а также в RELEASE:

Код: Выделить всё

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
}
}
У меня есть некоторые основы языка C++ и я понимаю, что есть разница между режимами отладки и выпуска (конечный ассемблерный код отличается количеством шагов, работой с памятью и т.д. - тоже возможно, в отладке могут быть какие-то помощники указателей и т. д.) Но правильно ли я понимаю эту конкретную проблему, что есть некоторые ошибки низкого уровня (возможно, основанные на языке C), которые не вызывают никаких исключений высокого уровня, так что даже в C # попробуйте -ловить блог, приложение упадет? Потому что способ, которым я решил эту проблему, на самом деле заключался в том, что мне пришлось проанализировать logcat (как для режимов DEBUG, так и для RELEASE) и выяснить, в чем заключалась проблема, поскольку ни в режиме DEBUG, ни в режиме RELEASE не было создано никаких исключений.
Вот лог-файл отладки:
Изображение

Вот лог-файл RELEASE:
Изображение

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

Подробнее здесь: https://stackoverflow.com/questions/784 ... in-release
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • MAUI Android работает в режиме DEBUG, но вылетает в режиме RELEASE
    Anonymous » » в форуме Android
    0 Ответы
    42 Просмотры
    Последнее сообщение Anonymous
  • Live-build: E: В репозитории «http://security.debian.org/debian-security Bullseye/updates Release» нет файла Release.
    Anonymous » » в форуме Linux
    0 Ответы
    82 Просмотры
    Последнее сообщение Anonymous
  • Как удалить уязвимость, обнаруженная для Springframework/Spring-Beans/5.0.5.release/Spring-Beans-5.0.5.release.jar [дубл
    Anonymous » » в форуме JAVA
    0 Ответы
    27 Просмотры
    Последнее сообщение Anonymous
  • Как я могу установить Dcmtk в версии Debug и Release одновременно
    Anonymous » » в форуме C++
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • C# Debug и Release .exe ведут себя по-разному из-за Long? [закрыто]
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»