You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在同一项目中使用依赖不同MonoAndroid的两款MvvmCross 5.6.3组件?

解决MvvmCross组件MonoAndroid版本冲突问题

我完全理解你现在碰到的头疼问题——MvvmCross.Plugin.Location.Fused 5.6.3和MvvmCross.Droid.Support.v7.AppCompat 5.6.3因为MonoAndroid版本要求不匹配,没法在同一个项目里正常共存。下面是几个经过开发者验证的可行解决思路:

1. 升级到统一的MvvmCross新版本

MvvmCross 5.6.3属于比较早期的版本,后续发布的稳定版本(比如6.x及以上)已经修复了这类依赖冲突问题。你可以尝试把这两个组件都升级到同一个较新的稳定版本,新版本的组件会统一依赖的MonoAndroid版本,同时对Xamarin.Android.Support库的依赖也会同步对齐,从根源上解决版本冲突。

操作步骤:

  • 打开NuGet包管理器,先卸载当前的两个MvvmCross组件
  • 搜索并安装版本号完全一致的MvvmCross.Droid.Support.v7.AppCompat和MvvmCross.Plugin.Location.Fused

2. 降级Xamarin.Android.Support库到兼容版本

如果暂时没法升级MvvmCross主版本,你可以尝试把Xamarin.Android.Support.v7.AppCompat的版本降到25.3.1——这是MvvmCross.Droid.Support.v7.AppCompat 5.6.3明确要求的最低版本,这个版本的Support库依赖MonoAndroid v7.0,和Location.Fused插件的v0.0依赖(v0.0是兼容多个旧版本的通配标记)可以完美兼容。

操作步骤:

  • 在NuGet包管理器中找到Xamarin.Android.Support.v7.AppCompat,选择25.3.1版本进行安装
  • 安装时如果提示其他关联的Support库需要降级,直接选择“接受”,确保所有Support库都统一为25.3.1系列版本

3. 手动编辑项目文件强制统一依赖

如果NuGet自动处理依赖时出现异常,可以直接编辑Android项目的.csproj文件,手动指定所有相关组件的版本:

  1. 右键项目 → 选择“编辑项目文件”
  2. 找到所有涉及MvvmCross和Xamarin.Android.Support的PackageReference节点,统一版本号:
    <PackageReference Include="MvvmCross.Droid.Support.v7.AppCompat" Version="5.6.3" />
    <PackageReference Include="MvvmCross.Plugin.Location.Fused" Version="5.6.3" />
    <PackageReference Include="Xamarin.Android.Support.v7.AppCompat" Version="25.3.1" />
    
  3. 保存文件后重新加载项目,NuGet会按照你指定的版本恢复依赖

4. 替换定位插件为原生实现

如果以上方法都不生效,你可以考虑暂时弃用MvvmCross.Plugin.Location.Fused,直接基于Xamarin原生定位API或Google Play Services Location API自己实现定位功能,这样就能避开插件的依赖限制。
需要注意的是,自己实现时要处理好权限申请、定位回调等逻辑,确保和MvvmCross的MVVM架构兼容。

内容的提问来源于stack exchange,提问作者M. Feldman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 09:37:18