daemon not running. starting it now on port 5037 * ADB server didn't ACK * failed to start daemon * error: cannot connect to daemon
时间: 2024-06-08 22:08:08 浏览: 184
这个错误通常表示ADB(Android Debug Bridge)守护进程未能正常启动或连接。以下是一些可能的解决方法:
1. 确保ADB已正确安装:检查ADB是否正确安装并可用于您的操作系统。您可以尝试重新安装ADB来修复任何潜在的安装问题。
2. 检查守护进程状态:在命令行窗口中,输入adb kill-server,然后再输入adb start-server,以确保守护进程已正确启动。
3. 检查端口占用情况:确保端口5037未被其他进程占用。您可以使用端口扫描工具(如netstat或lsof)来检查是否有其他应用程序正在使用该端口。
4. 关闭防火墙或安全软件:某些防火墙或安全软件可能会阻止ADB守护进程的正常运行。尝试关闭防火墙或临时禁用安全软件,然后再次尝试启动ADB守护进程。
5. 检查设备连接:如果您尝试连接设备而不是模拟器,请确保USB调试已启用,并且设备已正确连接到计算机。您可以尝试重新连接设备,或者使用不同的USB端口来解决此问题。
如果您仍然遇到问题,请提供更多详细信息,以便我可以更好地帮助您解决此问题。
相关问题
* daemon not running. starting it now on port 5037 * ADB server didn't ACK * failed to start daemon * error: cannot connect to daemon
根据引用,"* daemon not running. starting it now on port 5037 * ADB server didn't ACK * failed to start daemon *"这个错误信息表明ADB服务器无法启动。根据引用,问题可能是由于端口5037已经被占用而导致的。为了解决这个问题,你可以按照以下步骤进行操作:
1. 首先,进入命令提示符(cmd)或终端窗口。
2. 执行命令adb kill-server以停止ADB服务器。
3. 然后执行命令adb start-server以启动ADB服务器。
4. 如果仍然无法连接到守护进程并出现错误"cannot connect to daemon",可以尝试执行adb nodaemon server命令,根据引用中的描述,这可能会显示端口绑定失败的错误信息。
5. 如果上述步骤中的命令无法解决问题,可以尝试执行命令netstat -ano | findstr "5037"来查找占用5037端口的进程。
6. 根据引用中的描述,你可能会看到类似于"TCP 127.0.0.1:2568 127.0.0.1:5037 SYN_SENT 516"的信息,其中516是占用5037端口的进程ID。
7. 找到占用5037端口的进程ID后,你可以打开任务管理器,并根据进程ID找到对应的进程,并将其终止。
8. 终止占用5037端口的进程后,重新连接你的设备,应该可以正常连接到ADB服务器了。
综上所述,如果你在连接ADB服务器时遇到"* daemon not running. starting it now on port 5037 * ADB server didn't ACK * failed to start daemon * error: cannot connect to daemon"这个错误,请按照上述步骤进行操作,以解决问题。
* daemon not running; starting now at tcp:5037 ADB server didn't ACK Full server s liunx
### 解决方案
当遇到 `ADB server didn't ACK` 的错误提示时,这通常意味着 ADB 客户端无法成功连接到 ADB 服务进程。此问题可能由多种原因引起,包括权限不足、端口冲突或其他配置问题。
#### 权限设置调整
如果日志显示 `/tmp/adb.1000.log` 文件存在权限被拒绝的情况,则可能是由于当前用户缺少执行操作所需的适当权限[^3]。可以尝试通过命令行赋予必要的访问权限:
```bash
sudo chmod a+w /tmp/
```
不过更推荐的做法是指定具体的文件夹或文件权限而非开放整个临时目录给所有用户写入的能力。
#### 终止并重启ADB服务
有时简单的终止现有实例再重新初始化可以帮助解决问题:
```bash
adb kill-server
adb start-server
```
上述指令会先关闭任何正在运行的服务实例然后再创建一个新的监听于默认TCP端口5037上的守护程序[^4]。
#### 修改防火墙规则或网络参数
对于某些操作系统而言,默认情况下可能会阻止较低编号的端口号(小于1024),除非它们被列入特权列表内。可以通过修改系统级设定来允许这些特殊用途端口的工作状态正常化[^5]:
```bash
sudo ndd -set /dev/tcp tcp_extra_priv_ports_add 5037
```
这条命令将把用于Android调试桥接器通信的标准端口加入到了受信任区间之中,从而绕过了潜在的安全限制。
#### 验证SSH密钥认证机制
另外,在少数场景下,该类报错也可能是因为本地计算机试图建立安全链接却未能找到匹配的身份验证凭据所造成的。此时应当确认`.android`隐藏文件夹下的公私钥对是否存在以及其格式是否正确无误。
阅读全文