System.NullReferenceException Карты Xamarin

#xamarin #xamarin.forms

#xamarin #xamarin.forms

Вопрос:

Я получаю исключение NullException при отображении карты, но не могу определить; Я пытался изменить название карт, местоположение и т.д., Но безуспешно. Возможно, вы сможете определить, в чем моя ошибка, пожалуйста, помогите мне!

     public partial class LocationPage : ContentPage
    {
        public Clinica _clinica;

        public LocationPage(Clinica clinica)
        {
            InitializeComponent();
            Clinica = clinica;
            SetupMap();
        }



        public Clinica Clinica
        {
            get
            {
                return _clinica;
            }

            set
            {
                _clinica = value;
            }
        }

        protected override void OnAppearing()
        {
            base.OnAppearing();

            // Typically, is preferable to call into the viewmodel for OnAppearing() logic to be performed,
            // but we're not doing that in this case because we need to interact with the Xamarin.Forms.Map property on this Page.
            // In the future, the Map type and it's properties may get more binding support, so that the map setup can be omitted from code-behind.
            SetupMap();
        }

        void SetupMap()
        {
            if (Device.OS != TargetPlatform.WinPhone amp;amp; Device.OS != TargetPlatform.Windows)
            {
                var pin = new Pin()
                {
                    Type = PinType.Place,
                    Position = new Position(Clinica.Latitude, Clinica.Longitude),
                    Label = Clinica.Nome

                };

                clinicaMap.Pins.Clear();

                clinicaMap.Pins.Add(pin);

                clinicaMap.MoveToRegion(MapSpan.FromCenterAndRadius(pin.Position, Distance.FromMiles(10)));
            }
        }
    }
}
  

LocationPage.xaml

 <?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:maps="clr-namespace:Xamarin.Forms.Maps;assembly=Xamarin.Forms.Maps"
             x:Class="CartaoDeTodos.View.LocationPage">
    <StackLayout>
        <maps:Map x:Name="clinicaMap"
                        VerticalOptions="FillAndExpand"/>
    </StackLayout>
</ContentPage>
  

Ошибка

введите описание изображения здесь

введите описание изображения здесь

Комментарии:

1. это может быть не связано, но вы вызываете SetupMaps() дважды. Вы пробовали «Прервать» при появлении диалогового окна исключения и проверке трассировки стека?

2. Два подозреваемых: clinica параметр конструктора или clinicaMap.Pins . Да, пожалуйста, используйте точки останова, это должно быть легко выяснить.

3. Я отредактировал сообщение для лучшего понимания. Ошибка возникает, когда я оставляю код карты в файле xaml.

4. Публикуйте текст исключения, а не скриншот. Вы можете получить полный текст с помощью Exception.ToString() . Это включает в себя стек вызовов, который покажет, где на самом деле произошло исключение. Кстати, этот снимок экрана появляется, когда во внешних библиотеках создаются исключения. Исключения, создаваемые из вашего собственного кода, включают в себя детали

5. Мне пришлось поставить другую печать, потому что я не могу поймать исключение при попытке поймать. Ошибка возникает сразу после этой строки и больше не имеет никакого кода train depot