Xamarin.android 调用NativeMap getter时Xamarin.Forms.Maps.Android.MapRenderer异常
在我的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渲染器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
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模拟器上多次测试了您的代码,在调试模式下运行良好。对不起,帮不了什么忙。