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

Visual Studio 2017 CE中Xamarin项目升级MvvmCross遇类型找不到错误

解决MvvmCross 5.6.3中找不到'MvxFragmentsPresenter'的问题

这个错误是因为MvvmCross从5.x版本开始,把MvxFragmentsPresenter从核心包拆分到了专门的Android Support Fragments扩展包中,而且API的使用方式也和4.1.1版本有差异,这就是你跟着旧教程走遇到问题的原因。下面是具体的解决步骤:

1. 安装正确的NuGet包

你需要确保安装了MvvmCross.Droid.Support.Fragments这个包,它是MvvmCross 5.x及以上版本中包含MvxFragmentsPresenter的依赖包。打开NuGet包管理器,搜索并安装这个包(如果已经安装,建议卸载后重新安装一次,确保引用正确)。

2. 修正Setup.cs中的命名空间引用

在你的Setup.cs文件顶部添加以下命名空间引用:

using MvvmCross.Droid.Support.Fragments.Presenters;

3. 调整Presenter的注册代码

在4.x版本中,你可能是通过RegisterPresenter来注册MvxFragmentsPresenter,但在5.x版本中,正确的方式是重写CreateViewPresenter方法来返回MvxFragmentsPresenter的实例。示例代码如下:

public class Setup : MvxAndroidSetup<Core.App>
{
    protected override IMvxAndroidViewPresenter CreateViewPresenter()
    {
        var presenter = new MvxFragmentsPresenter(AndroidViewAssemblies);
        Mvx.RegisterSingleton<IMvxAndroidViewPresenter>(presenter);
        return presenter;
    }

    // 其他已有的Setup代码...
}

4. 清理并重建项目

完成上述步骤后,先清理你的解决方案(右键解决方案 -> 清理),然后重新生成项目(右键解决方案 -> 生成),确保所有引用都正确加载。

这样应该就能解决找不到MvxFragmentsPresenter的问题了,核心就是要适配MvvmCross 5.x版本对组件拆分和API调整的变化。

内容的提问来源于stack exchange,提问作者ael

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 09:01:59