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

升级VS2022后Xamarin真机调试遇Mono.AndroidTools.AdbException错误求助

Xamarin真机调试崩溃(VS2022升级后):WSACancelBlockingCall错误解决办法

问题重现

升级Visual Studio 2022后,Xamarin应用真机调试时抛出以下错误,重启ADB、清理bin/obj等常规操作无效:

Mono.AndroidTools.AdbException: Unable to read data from the transport connection: A blocking operation was interrupted by a call to WSACancelBlockingCall
---> System.IO.IOException: Unable to read data from the transport connection: A blocking operation was interrupted by a call to WSACancelBlockingCall
---> System.Net.Sockets.SocketException: A blocking operation was interrupted by a call to WSACancelBlockingCall
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.IO.StreamReader.ReadBuffer()
at System.IO.StreamReader.ReadLine()
at Mono.AndroidTools.Adb.AdbClient.ReadLineWhile(Action`1 output, Func`1 predicate) in D:\a_work\1\s\External\androidtools\Mono.AndroidTools\Adb\AdbClient.cs:line 585
--- End of inner exception stack trace ---
at Mono.AndroidTools.Adb.AdbClient.ReadLineWhile(Action`1 output, Func`1 predicate) in D:\a_work\1\s\External\androidtools\Mono.AndroidTools\Adb\AdbClient.cs:line 592
at Mono.AndroidTools.AndroidDevice.<>c__DisplayClass119_0.b__0() in D:\a_work\1\s\External\androidtools\Mono.AndroidTools\AndroidDevice.cs:line 1021
[E:RunShellCommand]:      R52T40K8JGK logcat -v time "dalvikvm:S" "ActivityThread:S" "mkestner:S" "MonoDroid-Debugger:S" failed: Mono.AndroidTools.AdbException: Unable to read data from the transport connection: A blocking operation was interrupted by a call to WSACancelBlockingCall
---> System.IO.IOException: Unable to read data from the transport connection: A blocking operation was interrupted by a call to WSACancelBlockingCall
---> System.Net.Sockets.SocketException: A blocking operation was interrupted by a call to WSACancelBlockingCall
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
--- End of inner exception stack trace ---
at System.Net.Sockets.NetworkStream.Read(Byte[] buffer, Int32 offset, Int32 size)
at System.IO.StreamReader.ReadBuffer()
at System.IO.StreamReader.ReadLine()
at Mono.AndroidTools.Adb.AdbClient.ReadLineWhile(Action`1 output, Func`1 predicate) in D:\a_work\1\s\External\androidtools\Mono.AndroidTools\Adb\AdbClient.cs:line 585
--- End of inner exception stack trace ---
at Mono.AndroidTools.Adb.AdbClient.ReadLineWhile(Action`1 output, Func`1 predicate) in D:\a_work\1\s\External\androidtools\Mono.AndroidTools\Adb\AdbClient.cs:line 592
at Mono.AndroidTools.AndroidDevice.<>c__DisplayClass119_0.b__0() in D:\a_work\1\s\External\androidtools\Mono.AndroidTools\AndroidDevice.cs:line 1021

针对性解决步骤

  • 降级Android SDK Build-Tools版本:VS2022默认安装的高版本Build-Tools可能存在兼容性问题,卸载当前版本(如34.0.0+),安装33.0.2版本,重启VS后重试调试。
  • 调整ADB连接超时:打开VS的工具 > 选项 > Xamarin > Android设置,将“ADB连接超时”从默认值调高至15000ms,执行adb kill-server和adb start-server重启服务。
  • 禁用快速部署:在项目属性的Android选项卡中,取消勾选“快速部署”,清理项目后重新生成调试。
  • 替换ADB版本:复制Android SDK platform-tools目录下的adb.exe、AdbWinApi.dll、AdbWinUsbApi.dll,替换VS安装目录下对应文件(路径通常为C:\Program Files\Microsoft Visual Studio\2022\<版本>\BuildTools\bin\Android\adb),重启VS和ADB。
  • 检查设备连接:卸载并重装设备USB驱动,更换USB 2.0端口连接,重启设备的USB调试并重新授权计算机。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 06:47:06