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

添加PCL包引用后运行Xamarin.Forms Android项目触发文件未找到异常

解决Xamarin.Forms Android平台找不到PCL引用的SQLiteQueryBuilder库问题

我之前做Xamarin跨平台项目时也踩过一模一样的坑——明明只在PCL里引用和使用了某个库,Android项目却报找不到程序集的错误,给你几个亲测有效的解决思路:

1. 先搞懂背后的原因

Xamarin的跨平台项目里,PCL是共享代码容器,但最终运行时是Android项目的Mono for Android环境在执行逻辑,它需要把PCL依赖的所有库都加载到自己的运行时环境里。你看到的System.IO.FileNotFoundException,本质就是Android项目里没有这个库对应的Mono Android兼容版本,哪怕你没在Android项目里直接调用它。

2. 正确给Android项目安装对应版本的包

这是最稳妥的解决方式:

  • 打开NuGet包管理器,切换到你的Android项目,搜索SQLiteQueryBuilder,安装和PCL里完全一致的版本(0.0.1.6)
  • 如果图形化界面安装出问题,试试用Package Manager Console执行命令:
    Install-Package SQLiteQueryBuilder -Version 0.0.1.6 -ProjectName 你的Android项目名称
    
  • 安装完成后,一定要清理整个解决方案,手动删除所有项目的bin和obj文件夹,再重新生成解决方案

3. 检查库的平台兼容性

有些老的PCL库可能没针对Mono Android做适配,你可以查看这个NuGet包的支持平台列表,如果确实没有Android版本,建议换用更成熟的替代库,比如官方的SQLite-net或者SQLite-net-pcl,这些库对Xamarin各平台的支持更完善。

4. 应急方案:手动添加程序集(不推荐长期使用)

如果上面的方法都不行,你可以试试手动复制适配的程序集:

  • 找到PCL项目引用的SQLiteQueryBuilder.dll所在的NuGet包目录,看看里面有没有针对Android的版本(通常在lib/MonoAndroidXX这类文件夹里)
  • 把这个Android版本的dll添加到Android项目的引用中,设置它的「复制到输出目录」属性为「始终复制」

另外还要注意:确保你的Android项目目标框架版本和PCL的配置兼容,比如PCL用的是Profile259,Android项目最好设置为API 21及以上的目标框架。

内容的提问来源于stack exchange,提问作者Diego Rafael Souza

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:39:45