如何在Xamarin Android项目中添加无NuGet包的第三方类库
给Xamarin Android项目添加无NuGet包类库的操作方法(针对UsbSerialForAndroid)
你可以选两种方式接入,优先推荐第一种,后续维护更方便:
- 方式一:直接引用类库源码项目
- 先把UsbSerialForAndroid的完整源码下载到本地,解压到你当前解决方案的同级或子目录,路径不要带中文、空格或特殊符号,避免MSBuild编译时识别路径出错。
- 打开你自己的Xamarin Android解决方案,在解决方案资源管理器面板右键解决方案根节点,选择「添加」-「现有项目」,选中解压后源码目录里的
UsbSerialForAndroid.csproj文件,把类库项目加入到当前解决方案中。 - 右键你自己的Android项目的「依赖项」节点,选择「添加项目引用」,在弹出的引用管理器里勾选刚加入的UsbSerialForAndroid项目,确认后就完成了引用关联。
- 执行一次全解决方案编译,如果没有依赖版本不匹配的报错,就可以直接在代码里using对应命名空间调用库的接口了。
- 方式二:编译生成DLL后单独引用
- 单独打开解压后的UsbSerialForAndroid源码项目,选择Release配置,右键项目执行编译,编译完成后到项目输出目录(默认是
bin/Release对应目标框架版本的子文件夹),找到生成的UsbSerialForAndroid.dll文件。 - 回到你自己的Xamarin Android项目,右键「依赖项」-「添加程序集引用」,浏览选中刚才生成的dll文件确认添加即可。
注意:用这种方式要保证你自己项目的目标Android框架版本,和编译UsbSerialForAndroid时选的目标框架版本兼容,不然会出现程序集加载失败的问题。后续类库有更新的话,你需要手动重新拉源码编译替换dll,维护成本比直接引用项目高。
- 单独打开解压后的UsbSerialForAndroid源码项目,选择Release配置,右键项目执行编译,编译完成后到项目输出目录(默认是
接入后的必要配置
添加完引用后记得在你项目的AndroidManifest.xml里补上USB相关的权限和特性声明,不然运行时会拿不到串口访问权限:
<uses-permission android:name="android.permission.USB_PERMISSION" /> <uses-feature android:name="android.hardware.usb.host" />
如果需要实现插入对应USB设备自动唤起应用的逻辑,可以参考类库源码里附带的样例项目的Activity配置,加上对应的IntentFilter和元数据声明即可。
内容的提问来源于stack exchange,提问作者Andrew Taylor
相关产品推荐
相关产品推荐

