adb无法连接到tcp:5037上的守护程序

23
我的adb无法连接设备。 我正在运行adb start-server
    ulucudeMacBook-Pro:~ ulucu$ adb start-server
    * daemon not running. starting it now at tcp:5037 *
    * daemon started successfully *

接着运行 "lsof -i tcp:5037" 命令。

    ulucudeMacBook-Pro:~ ulucu$ lsof -i tcp:5037
    COMMAND  PID  USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
    adb     2308 ulucu    7u  IPv4 0x440443a862048a7b      0t0  TCP localhost:5037 (LISTEN)

但是当我运行adb kill-server命令时

    ulucudeMacBook-Pro:~ ulucu$ adb kill-server
    * server not running *

或者运行adb devicesadb shell
    List of devices attached
    * daemon not running. starting it now at tcp:5037 *
    adb E 03-31 09:30:26  2350 95705 usb_osx.cpp:333] Could not open interface: e00002c5
    adb E 03-31 09:30:26  2350 95705 usb_osx.cpp:294] Could not find device interface
    error: could not install *smartsocket* listener: Address already in use
    ADB server didn't ACK
    * failed to start daemon *
    error: cannot connect to daemon

ADB已经在运行。
没有其他进程使用“5037”端口。
也没有像“genymotion”这样的其他模拟器。
我的系统是Mac 10.12.14。
我的ADB版本是1.0.39。

问题出在哪里?

9个回答

28
adb kill-server
如果端口出现错误: adb reconnect对我有帮助。

它对我起作用了。我收到错误消息“无法连接到tcp:5037上的守护程序:连接超时”,因为守护进程未运行。“adb-reconnect”启动了守护进程。 - loved.by.Jesus

26
如果您已经升级到Platform Tools 25.0.4(您可以通过命令行运行android来检查),但它无法正常工作,只需下载先前的稳定版本,例如:https://dl.google.com/android/repository/platform-tools_r25.0.2-macosx.zip,然后转到Android SDK主目录并用下载的内容替换platform-tools文件夹。接下来执行:
ps aux | grep 5037
kill -9 <pid of process of your incorrectly running adb>

并且去

adb devices

谢谢。这在我的MacOS上有效。我永远不会想到这个。这是在更新一些软件包到25.0.x版本后发生的。 - Rafi Ali Khan
我的SDK管理器长这样:https://ibb.co/mGrOFk。显然,路径仍然指向24.4.1_1,而Android SDK工具显示为25.0.x(按照vbevans94的建议下载了25.0.2并替换了文件夹)。 - Rafi Ali Khan
谢谢,经过几个星期的探索,这解决了我的问题。 - Ajit
只是杀掉其他进程对我有用。非常感谢! - Tom Taylor
经过数天的搜索和尝试了许多在线解决方案后,这个解决了我的问题。非常感谢。 - ali sampson

10

根据这个线程,如果地址已经被占用,那么你无法连接。你可以尝试使用busybox netstat -antp命令来检查谁在使用该端口。下面是另一种可能有用的解决方法:

Solve this problem on MacBook by first running the following command to list the process which is using port 5037

lsof -n -i4TCP:5037 | grep LISTEN

Then, I kill it:

kill -9 <PID>

Then, adb devices works!

希望这能有所帮助!

我正在运行 "lsof -n -i4TCP:5037 | grep LISTEN"。 - teacher-too
adb 6796 ulucu 7u IPv4 0x440443a854b64753 0t0 TCP 127.0.0.1:5037 (LISTEN) ------------adb正在使用5037端口 ------------关闭它,然后执行"adb devices" ------------同样的错误 - teacher-too

3

我尝试了这里和其他几个线程中的每一个答案。

  • 删除 ~/.android 文件夹
  • 关闭服务器(不起作用,因为它仍然显示无法ACK)
  • greping 进程

我的adb是通过brew安装的,所以我只需运行brew cask reinstall android-platform-tools就可以了。


1

重新启动你的电脑

这是我唯一行之有效的方法。


0
我的问题的解决方案是以管理员身份运行Android Studio,似乎当我将Android Studio更新为3.5.2时,状态有所改变,导致出现问题。

0

Ubuntu 上也有同样的问题。

nils@nils-MS-7597:~$ adb devices List of devices attached * 守护程序未运行。现在在 tcp:5037 上启动它 * error: could not install smartsocket listener: Address already in use ADB server didn't ACK * failed to start daemon * error: cannot connect to daemon

只有 adb 在 5037 端口监听。关闭它无济于事。

更新 sdk 后遇到了此问题。不确定是否是原因。

但重新下载 android sdk 解决了我的问题:

下载 android sdk

wget http://dl.google.com/android/android-sdk_r24.2-linux.tgz

tar -xvf android-sdk_r24.2-linux.tgz cd android-sdk-linux/tools

安装所有 sdk 包

./android update sdk --no-ui


谢谢您的回答。我的系统是MAC OS。问题已经解决了。 原因是最新的系统和adb 1.0.39不兼容。 我使用adb 1.0.36没有问题。 - teacher-too

0

我简直不敢相信他们完全移除了独立的SDK,强制你安装最新的平台工具导致了这个问题,而且你无法从sdkmanager降级。真是可惜。 不管怎样,只需手动将ADB降级到1.0.36版本,应该就能解决问题。网络上有成百上千的类似问题。遗憾。


0

我能够按照@vbevans94的步骤解决了这个问题。

任何运行Android Studio Electric Eel和flutter SDK 3.7.9的人都肯定会遇到这个问题。 我所做的就是从https://androidsdkmanager.azurewebsites.net/Platformtools下载SDK Platforms tools 33.0.2,对我来说,任何更高版本都不起作用。

提取文件并导航到此路径/android-sdk-path/platform-tools,然后用新文件夹platform-tools替换它。重新启动Android Studio、Visual Studio Code或您使用的任何其他编辑器,然后您就可以开始了。


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