【问题标题】:Xamarin Forms cross-platform map issue on AndroidAndroid 上的 Xamarin Forms 跨平台地图问题
【发布时间】:2017-06-24 02:49:51
【问题描述】:

将 Xamarin Forms and Maps 升级到版本 2.3.3.193 后,在我的 Android 应用上,我现在在尝试显示地图时收到以下错误:

{Xamarin.Forms.Platform.Android.ViewRenderer}
{System.MissingMemberException}
未找到 Android.Gms.Maps.MapView.get_Map'

知道发生了什么吗?它在更新之前工作。任何帮助将不胜感激。

我的 Nuget 管理器的屏幕截图显示 2.3.3.193 作为最新的稳定版本。

【问题讨论】:

  • 我在 NuGet 管理器中检查了“包含预发布”,但我找不到 Xamarin.FormsXamarin.Forms.Maps 的发布版本 2.3.3.193,你是如何更新你的包的?我身边最新的稳定版是2.3.3.180。
  • 出现在Visual Studio Enterprise中。我通过nuget更新。它说有一个针对 xamarin 表格和地图的综合更新。我安装了它并获得了 2.3.3.193。
  • 我只做稳定版。
  • 我这边是这样的:Screenshot,我也查了Xamarin版本,我这边是V4.2.1,也没找到更新的版本,奇怪。
  • 那么我建议你与 msft 的某个人谈谈我是如何得到这个的。您也没有显示更新选项卡。正如我提到的,193 似乎是合并更新的一部分,而不是表单或地图的独立更新。你可以看到我的截图清楚地显示 193 不是预发布。

标签: xamarin.android xamarin.forms maps cross-platform


【解决方案1】:

Xamarin.Forms.Maps 2.3.3.193 要求 Xamarin.GooglePlayServices.Maps 版本为 29.0.0.1。不是 29.0.0.1 或更高版本!

Dependencies

从你的截图中,你有 42.1001.0

我在同一条船上。还是要使用 2016 年 3 月构建的 nuget 包!

【讨论】:

    【解决方案2】:

    更新

    该问题已在 Xamarin Forms 2.3.4.224 的最新稳定版本中得到修复。

    原答案

    有关此问题的讨论,请参阅https://bugzilla.xamarin.com/show_bug.cgi?id=52625

    Google 删除了他们的 java getMap 方法,该方法已经过时了一段时间(即使在 29.0.0.1 中,您也可以看到等效的 Map 属性被标记为过时)。 Forms 渲染器使用Map 属性(因此底层java getMap 方法),在较新版本的播放服务中不再存在,因此会发生崩溃。表单渲染器需要更改以使用 GetMapAsync 方法。

    Rob Lyndon(Bugzilla 讨论)创建了您可以使用的补丁:https://www.nuget.org/packages/XamarinForms.Maps.Android.TemporaryPatch

    由于 PCL 配置文件不匹配,我无法直接从 Nuget 使用补丁,所以我最终做了以下操作:

    1. 将补丁中的MapRenderer 复制到您的Android 项目中。确保调整命名空间
    2. 在您的 PCL 项目中扩展地图

    公共类 CustomMap : Xamarin.Forms.Maps.Map { }

    1. 在 Android 项目中创建自定义渲染器
    [assembly: ExportRenderer(typeof(CustomMap), typeof(MapRenderer))]
    namespace StanleySteemer.Nimbus.Mobile.Renderers
    {
        public class CustomMapRenderer : MapRenderer {}
    }
    
    1. 在您的视图中使用 CustomMap 而不是 Map

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-04
      • 2019-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多