UWP上的Xamarin Forms Map引发异常

时间:2018-08-23 11:46:25

标签: xamarin.forms xamarin.uwp uwp-maps

我正在创建一个Xamarin Forms应用程序,该应用程序应该可以在Android,iOS和Windows UWP中运行。该应用程序主页的内容由放置在Telerik UI RadSlideView中的几张幻灯片组成,这些幻灯片的内容是为每个用户定义的,并且可以从API获取。这些幻灯片的可能组件之一是我使用Xamarin.Forms.Maps.Map显示的地图。

在Android和iOS上都可以正常运行,但在Windows UWP中却有一个奇怪的行为:如果地图不在第一张幻灯片上(应用启动时显示的那张),则可以正常工作,但是如果地图在第一张幻灯片然后在NullReferenceException类的私有方法中抛出MapRenderer

大多数时候,我只是看到一个窗口,说明有一个异常,而没有任何进一步的细节:

enter image description here

有时调试器会捕获异常,我可以获得其详细信息:

Source: Xamarin.Forms.Maps.UWP

> StackTrace:
    at Xamarin.Forms.Maps.UWP.MapRenderer.<MoveToRegion>d__12.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   at Xamarin.Forms.Maps.UWP.MapRenderer.<>c__DisplayClass0_0.<<OnElementChanged>b__1>d.MoveNext()
--- End of stack trace from previous location where exception was thrown ---
   at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
   at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state)
   at System.Threading.WinRTSynchronizationContextBase.Invoker.InvokeCore()

我不知道如何才能使其正常工作。有什么建议吗?

1 个答案:

答案 0 :(得分:0)

尝试了几种解决方法后,我终于设法使其正常工作。

我已经怀疑这与页面元素初始化的时间有关,因此我尝试以另一种方式创建地图并且它起作用。我使用了建议的方法here