Xamarin.android 调用NativeMap getter时Xamarin.Forms.Maps.Android.MapRenderer异常

Xamarin.android 调用NativeMap getter时Xamarin.Forms.Maps.Android.MapRenderer异常,xamarin.android,xamarin.forms,Xamarin.android,Xamarin.forms,在我的Xamarin Forms项目中有一个自定义地图渲染器,它可以正常工作。然而,我间歇性地得到下面概述的异常 谁能告诉我如何处理/解决这个问题 [NullReferenceException:对象引用未设置为对象的实例。] Xamarin.Forms.Maps.Android.MapRenderer.get_NativeMap():0 Xamarin.Forms.Maps.Android.maprederer.UpdateVisibleRegion(Android.Gms.Maps.Mode

在我的Xamarin Forms项目中有一个自定义地图渲染器,它可以正常工作。然而,我间歇性地得到下面概述的异常

谁能告诉我如何处理/解决这个问题

[NullReferenceException:对象引用未设置为对象的实例。]

Xamarin.Forms.Maps.Android.MapRenderer.get_NativeMap():0

Xamarin.Forms.Maps.Android.maprederer.UpdateVisibleRegion(Android.Gms.Maps.Model.LatLng pos):0

Xamarin.Forms.Maps.Android.maprederer.OnCameraChange(Android.Gms.Maps.Model.CameraPosition pos):0

Android.Gms.Maps.GoogleMap+IonCamerachengeListenerinvoker.n\u OnCameraChange\u Lcom\u google\u Android\u Gms\u Maps\u model\u CameraPosition\u(IntPtr jnienv,IntPtr native\u this,IntPtr native\u position):0 (包装器动态方法)系统。对象:147fbd37-e0e3-4bcf-a8c6-a4d48c833aa4(intptr、intptr、intptr)

我发现这篇Bugzilla文章建议添加“null条件运算符”,但在哪里呢

有关信息,我正在使用Xamarin.Forms.Maps的2.3.3.180版

这是我的密码:

这是Droid渲染器

using System;
using System.Collections.Generic;
using System.ComponentModel;
using Android.Content;
using Android.Gms.Maps;
using Android.Gms.Maps.Model;
using Android.Runtime;
using Android.Util;
using Android.Widget;
using MyProject.Mobile.Controls;
using MyProject.Mobile.Droid.Renderers;
using Xamarin.Forms;
using Xamarin.Forms.Maps;
using Xamarin.Forms.Maps.Android;

[assembly: ExportRenderer(typeof(CustomMap), typeof(CustomMapRenderer))]
namespace MyProject.Mobile.Droid.Renderers
{
    public class CustomMapRenderer : MapRenderer,     GoogleMap.IInfoWindowAdapter, IOnMapReadyCallback
    {
        GoogleMap map;

        public CustomMapRenderer() : base() { }

        public CustomMapRenderer(IntPtr handle, JniHandleOwnership transfer) { }

    public void OnMapReady(GoogleMap googleMap)
    {
        map = googleMap;
        map.SetInfoWindowAdapter(this);
    }

    protected override void OnElementPropertyChanged(object sender, PropertyChangedEventArgs e)
    {
        base.OnElementPropertyChanged(sender, e);

    }

    protected override void OnLayout(bool changed, int l, int t, int r, int b)
    {
        base.OnLayout(changed, l, t, r, b);

    }

    public Android.Views.View GetInfoContents(Marker marker)
    {
        var inflater = Android.App.Application.Context.GetSystemService(Context.LayoutInflaterService) as Android.Views.LayoutInflater;
        if (inflater != null)
        {
            Android.Views.View view = null;

            // Do something

            return view;
        }
        return null;
    }

    public Android.Views.View GetInfoWindow(Marker marker)
    {
        return null;
    }
}
}

这是中的CustomMap类

using Xamarin.Forms.Maps;

namespace MyProject.Mobile.Controls
{
    public class CustomMap : Map
    {
        // Do something custom
    }
}
这是Xmal中控件的实现

<controls:CustomMap x:Name="LocationMap"
              IsShowingUser="true"
              MapType="Street"
              HorizontalOptions="FillAndExpand"
              VerticalOptions="FillAndExpand"
              HeightRequest="300"
              WidthRequest="700">
    </controls:CustomMap>


能否请您分享一些代码和步骤,以便我重现此问题?我试图自定义MapRenderer,但无法重现此问题。我现在添加了自定义控制代码。当页面加载异常时,我在我的android 4.4模拟器上多次测试了您的代码,在调试模式下运行良好。对不起,帮不了什么忙。