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

