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

运行Xamarin.iOS项目报Mono.Android加载失败异常求助

Xamarin.iOS 运行时 Mono.Android 程序集加载异常解决

异常详情

运行Xamarin.iOS项目时触发System.IO.FileNotFoundException异常:

Could not load file or assembly 'Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065' or one of its dependencies.

含义:无法加载文件或程序集“Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=84e04ff9cfb79065”或其某一依赖项。

排查与解决步骤

  • 排查错误引用:Mono.Android是Xamarin.Android平台专属程序集,iOS运行环境不存在该文件。首先检查iOS主项目、以及iOS项目引用的所有共享类库、第三方NuGet包、绑定库,确认没有误引用Android专属的依赖包。
  • 校验条件编译逻辑:如果使用Shared Project共享跨平台代码,所有调用Android系统API、引用Android命名空间的代码段,必须包裹在#if __ANDROID__条件编译块内,避免iOS编译阶段误打包Android专属代码。
  • 清理全量编译缓存:关闭Visual Studio,手动删除解决方案根目录、iOS项目目录下的所有bin、obj文件夹,重启IDE后先执行「清理解决方案」,再执行「重新生成解决方案」,排除历史编译残留导致的引用错乱。
  • 对齐NuGet包版本:检查解决方案内所有Xamarin相关包(包括Xamarin.Forms、Xamarin.Essentials及各类第三方插件)的版本号,确保所有项目引用的版本完全一致;如果发现有NuGet包自动给iOS项目引入了Mono.Android依赖,卸载该包后重新安装适配iOS平台的正确版本。
  • 校验自定义类库适配性:如果项目引用了自行开发的类库,确认该类库是.NET Standard/.NET 跨平台类库,而非仅面向Xamarin.Android平台的专属类库;如果类库做了多平台分支实现,确认iOS分支代码没有引入Android相关依赖。

定位问题技巧

如果上述步骤没有快速定位问题,可以新建一个空白Xamarin.iOS项目,逐批迁移现有项目的代码、引用,每迁移一批就编译运行一次,很快就能定位到引入错误依赖的具体模块,针对性移除即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.31 20:54:18