我在Xamarin表单解决方案中使用ArcGIS Runtime 100.4.0,该解决方案由组成
- Android项目
- iOS
- .Net Standard 2项目(android和ios使用的共享逻辑(
我的代码非常简单,它只尝试显示地图。我使用了Esri示例中的代码来显示地图,并且我已经在另一个项目中使用了它,其中应用程序逻辑位于Visual Studio共享项目中(而不是.net标准(。Esri示例项目还使用Visual Studio共享项目。我认为我所面临的问题可以通过使用Visual Studio共享项目来解决,但由于一些技术原因,我不得不使用.Net Standard来实现我的共享逻辑
现在的问题是:
android应用程序显示地图没有问题,但在我的iOS应用程序中,当应用程序尝试初始化地图时,我在.net标准项目中遇到以下错误:
在xmlns-clr命名空间中找不到MapView:Esri.ArcGISRuntime.Xamarin.Forms;assembly=Esri.ArcGISRuntime.Xamarin.Forms
我相信我的iOS项目中有所有正确的参考,而且事实上,这个错误发生在我的Android应用程序中运行的.net标准项目中
在iOS而不是android中使用我的.netstandard项目时,怎么可能缺少MapView类?
当我对此进行调查时,我发现了一个我不知道原因的解决方案:
我在页面代码的InitializeComponent()
之前添加了一行,它只是创建了Esri.ArcGISRuntime.Xamarin.Forms.MapView
的一个实例,并修复了它:
public MapPage()
{
var a = new Esri.ArcGISRuntime.Xamarin.Forms.MapView();
InitializeComponent();
}
如果我删除了那一行,我会在iOS中再次出现错误。我不知道为什么会这样