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

MvxAndroidApplication未找到,Xamarin Android项目编译失败求助

解决MvvmCross 6.0.1 Xamarin Android项目无法找到MvxAndroidApplication和MvxAndroidSetup的问题

看起来你遇到的问题核心在于NuGet包还原不完整和Xamarin Android SDK配置异常,结合你提到的Mono.Android版本显示0.0.0.0的情况,我整理了以下针对性的解决步骤:

1. 彻底检查并修复NuGet包安装

首先确认你的Xamarin Android项目是否安装了正确的MvvmCross平台包:

  • 打开NuGet包管理器(右键Android项目 -> 管理NuGet包),确保除了MvvmCross外,还安装了MvvmCross.Platforms.Android——这是6.x版本中包含Android核心类的关键包。如果只安装了基础的MvvmCross,会直接缺失MvvmCross.Platforms命名空间及相关类。
  • 清理NuGet缓存:打开VS的「工具 -> 选项 -> NuGet包管理器 -> 常规」,点击「清除所有NuGet缓存」,然后右键解决方案选择「还原NuGet包」,强制重新下载完整的包文件。

2. 修复Mono.Android版本异常问题

Mono.Android显示0.0.0.0是明显的配置错误,这会导致依赖它的MvvmCross Android包无法正常工作:

  • 检查第二台电脑的Xamarin Android SDK安装:打开VS的「工具 -> Android -> Android SDK管理器」,确保安装了与你第一台电脑一致的Android SDK版本(比如Android 11.0 API 30),并且勾选了对应的「Android SDK Build Tools」。
  • 修正项目的目标框架:右键Android项目 -> 属性 -> 应用程序,在「编译使用Android版本」下拉框中选择已安装的明确SDK版本(不要选「使用最新安装的平台」),保存后VS会自动修复Mono.Android的引用。
  • 手动检查项目文件:如果上述步骤无效,右键Android项目 -> 卸载项目 -> 编辑.csproj文件,查找<Reference Include="Mono.Android"的行,确保版本号是正确的(比如Version=11.0.0.0),如果是0.0.0.0,手动修改后重新加载项目。

3. 确认命名空间和类的引用正确性

MvvmCross 6.x版本对命名空间做了重构,旧版本的MvvmCross.Droid.*命名空间已经被替换为MvvmCross.Platforms.Android.*,确保你的MainApplication类引用了正确的命名空间:

using MvvmCross.Platforms.Android.Core;
using MvvmCross.Platforms.Android.Views;

namespace YourApp.Droid
{
    public class MainApplication : MvxAndroidApplication<MvxAndroidSetup<App>, App>
    {
        // ... 你的代码
    }
}

4. 深度清理并重建项目

有时候常规的清理重建无法解决缓存问题,尝试以下步骤:

  • 关闭Visual Studio
  • 删除所有项目的bin和obj文件夹
  • 删除解决方案根目录下的.vs隐藏文件夹
  • 重新打开VS,先执行「还原NuGet包」,再重新生成整个解决方案

额外检查项

  • 确认Android项目的目标.NET版本与Core项目兼容:Core项目是.NET Standard 2.0的话,Android项目的目标框架至少要设置为Android 8.0(API 26)或更高版本。
  • 检查Visual Studio的版本:确保第二台电脑的VS版本与第一台一致,并且安装了最新的Xamarin更新(工具 -> 获取工具和功能 -> 检查更新)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 07:28:50