在使用ADB调试的时候,无法在Visual Studio中对Xamarin Android应用程序进行调试。

5
我正在尝试在Visual Studio中运行Xamarin(Android)应用程序中的示例TipCalc,但是在编译后运行Android模拟器时,提示:

adb服务器版本(32)与此客户端(36)不匹配

我该如何解决这个问题?我已经更新了Xamarin和Android SDK文件,并且Xamarin正确地指向我的android SDK位置(D:\dev\Xamarin\AndroidSDK)。

enter image description here

这是我的Android SDK管理器的屏幕截图:

enter image description here

这是一段更大的输出片段:
1>D:\dev\Xamarin\AndroidSDK\platform-tools\adb.exe -s 169.254.138.177:5555 devices 
1>error: could not install *smartsocket* listener: cannot bind to 127.0.0.1:5037: Only one usage of each socket address (protocol/network address/port) is normally permitted. (10048)
1>List of devices attached
1>adb server version (32) doesn't match this client (36); killing...
1>could not read ok from ADB Server
1>* failed to start daemon *
1>error: cannot connect to daemon
1>
1>Selected device is not running.
1>Build FAILED.

更新:安装 Android SDK Build-tools 24.0.3(并删除 23.0.2)没有帮助。

这里这个问题提供的答案没有帮助,因为我不知道Appium或Genymotion是什么,也不使用PHP。我同意他们都是由Android调试器引起的,但我需要Xamarin的修复。


使用Genymotion吗? - SushiHangover
3
可能是 Appium: adb server version (31) doesn't match this client (36) 的重复问题。 - SushiHangover
@SushiHangover,我不知道Genymotion是什么。我只是在使用Xamarin.Android。另一篇文章我已经看过了,但对我没有帮助。 - PeterX
1个回答

8
问题是您同时运行了另一个adb服务器。当您安装Android SDK时,它会安装Xamarin将使用的adb版本(在本例中为版本36),但某些其他工具也安装了adb。一些示例包括Gennymotion和Appium,如前所述,在我的情况下,它作为我用于将Android设备屏幕共享回Mac的Mobizen的一部分而来。您将安装某些运行adb(版本32)的内容,导致冲突。

您需要做的是找到有问题的adb安装并将其删除。我假设您正在使用Windows,因此最好启动任务管理器并查看进程以查找adb。一旦找到它,您应该能够根据其路径的属性看到它是从哪个应用程序安装的,以便您可以卸载或删除它。

adb.exe process adb properties showing full path


对我来说,华为的Android设备管理软件是HiSuite。有时候当我插上手机时,它会自动启动adb,但并非所有情况都是如此,所以很难找到。我在插入手机时观察进程列表,并追踪新的adb实例 - 找到了!感谢您的帮助! - ignotus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接