Приложение Xamarin.Forms работает на iOS, выдает ошибку на Android («Ссылка на объект не установлена ​​для экземпляра объекта») - PullRequest
0 голосов
/ 04 июля 2018

Я новичок в Xamarin.Forms.

У меня есть приложение, которое хорошо работает на iOS. Однако на Android он падает через некоторое время и выдает следующую ошибку:

Необработанное исключение:

System.NullReferenceException: ссылка на объект не установлена ​​для экземпляра объекта.

Debug говорит, что это происходит с этим кодом:

private void OnElementToggled(object sender, EventArgs e)
{
    this.Element.IsToggled = this.Control.Checked;
}

Этот переключатель включает или отключает параметр в нашем приложении. Переключатель отлично работает на iOS. Это также работает на Android, но если я перемещаюсь по приложению и включаю / выключаю несколько раз, я получаю сообщение об ошибке. Я получаю эту ошибку только на Android, и только после того, как я перемещаюсь. Кроме того, я получаю это в разное время на симуляторе против устройства (Galaxy S5 Neo). Симулятор может работать дольше, прежде чем я получу ошибку.

Я ошеломлен. Как мне это исправить?

Я искал и нашел Что такое исключение NullReferenceException и как его исправить? . Это решение, похоже, не применимо в моем случае, потому что мой код работает нормально на iOS и первоначально на Android.

Большое спасибо за ваше время и помощь.

1 Ответ

0 голосов
/ 05 июля 2018

Try / Catch - это базовый концепт C #, его охватит любая вступительная книга

private void OnElementToggled(object sender, EventArgs e)
{
    try {
      this.Element.IsToggled = this.Control.Checked;
    catch (Exception ex) {
      // use logging (ie, appcenter.ms) to log this exception
    }
}
...