CustomMapRenderer中的OnElementChanged()期间的System.NullReferenceException

时间:2017-03-27 09:44:50

标签: android google-maps xamarin xamarin.android

我正在使用Xamarin编写应用程序。该应用程序的一部分包括显示跟踪点的地图。一切都运行得很好,除了使用Android 6.0.1在小米Redmi 4A上运行的应用程序。

我得到一个System.NullReferenceException:当我尝试运行我的OnElementChanged(ElementChangedEventArgs e)时,对象引用未设置为对象的实例。

我的代码:

 protected override void OnElementChanged(ElementChangedEventArgs<View> e)
    {
        base.OnElementChanged(e);

        if (e.NewElement != null)
        {
            _customMap = (CustomMap)e.NewElement;
            _unitViewModel = (UnitViewModel)_customMap.BindingContext;
            ((MapView)Control).GetMapAsync(this);

            _unitViewModel.TrackingPositions.CollectionChanged += TrackingPositions_CollectionChanged;
        }
    }

在base.OnElementChanged(e)处抛出异常。如果此部分包含在try catch中,则会抛出相同的异常((MapView)Control).GetMapAsync(this);

1 个答案:

答案 0 :(得分:0)

我的问题通过启用android来解决:hardwareAccelerated =&#34; true&#34;在Android Manifest文件中。这可能有助于在一系列设备上解决几个相同性质的NullPointerExceptions。

<application android:label="MyApp" android:icon="@drawable/Logo" android:theme="@style/MyTheme" android:hardwareAccelerated="true">

首次发布解决方案的链接:android.content.res.Resources.getConfiguration()' on a null object reference。这家伙才是真正的MVP:D