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
相关产品推荐
相关产品推荐

