0

我在我的 Xamarin 表单解决方案中使用 ArcGIS Runtime 100.4.0,该解决方案包括

  • 安卓项目
  • 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 中使用我的 .netstandard 项目而不是 android 时,怎么可能缺少 MapView 类?

4

1 回答 1

0

当我对此进行调查时,我发现了一个我不知道原因的解决方案:
我在我的页面代码之前添加了一行,InitializeComponent()它只是创建了一个实例Esri.ArcGISRuntime.Xamarin.Forms.MapView,并且修复了它:

    public MapPage()
    {
        var a = new Esri.ArcGISRuntime.Xamarin.Forms.MapView();
        InitializeComponent();
    }

如果我删除该行,我会在 iOS 中再次收到错误。我不知道为什么会这样

于 2018-12-12T15:07:50.793 回答