android adb启动失败问题 adb server is out of date. killing... ADB server didn't ACK * failed to start daem

今天打开Eclipse,真机连接之前,是要启动adb的,突然发现就失败了。

错误如下--》

  1. adb server is out of date.  killing...  
  2. ADB server didn't ACK  
  3. * failed to start daemon *

第一猜想,就是adb的端口号被占用了。

随机--

一.查看是否是豌豆荚或者手机助手占用了端口号,但是发现没有。

二.没办法,只好借助命令行查询了

具体如下--》

  1.输入命令adb nodaemon server

  

  很显然,我们的adb端口号是5037,但是绑定失败,肯定是别的进程占用他的端口号了,此时我们需要做的就是找到那个进程病kill it。

  2.输入命令netstat -ano | findstr "5037" 

  

  喔,看到127.0.0.1:5037我们就高兴了,原来5037这个端口号还真是被占用了,当然,我们会发现,是被PID为9056的进程所占用的,接下来我们就是消灭这个进程的时候了。

  3.打开”任务管理器“,接下来一步步点击 进程-->查看-->选择列   看到PID(进程标识符)把它前面的对号勾上。点击“确定”按钮返回“任务管理器”主界面

  4.此时我们根据PID区查找之前的9056进程,点击右键然后“结束进程”就ok了,再启动adb你会看到

  

  此时就ok了。

  

  其实还可以用命令直接去kill占用adb端口号的进程,但是我自身的机子发现根本找不到那个命令,所以还是觉得以直观的任务管理器的方式写出来,大家更简单易懂,就算出现了这种情况也可以不用记那么多命令直接解决!

今天遇到到怪问题是占用5037端口的是一个bdadb.exe文件。把它杀掉之后又立马重启,折磨了我老半天。查了一下原来这是百度手机助手的插件。最后把系统中的百度文件夹删掉才解决,累死我了。不过还好,终于解决了。。。。。。。。

### 解决ADB服务器版本过旧并被终止的问题 当遇到 `adb server is out of date. killing... ADB server didn't ACK * failed to start daemon * error: unknown host service` 的问题时,通常是因为第三方工具修改了PC端的ADB环境,导致ADB客户端无法正确连接到ADB服务器[^1]。以下是解决此问题的具体方法: #### 1. 强制重启ADB服务器 可以通过以下命令强制重启ADB服务器: ```bash adb kill-server adb start-server ``` 上述命令会先终止当前运行的ADB服务器实例,然后重新启动一个新的服务器实例[^2]。 #### 2. 检查第三方工具的影响 如果问题依然存在,可能是某些第三方工具(如豌豆荚、91手机助手、迅雷等)使用了自定义的ADB客户端或服务器,干扰了正常的ADB操作。可以尝试以下步骤: - 打开任务管理器,查找并终止可能影响ADB的进程,例如 `wandoujia_helper.exe` 或其他相关进程[^3]。 - 如果不确定具体进程名称,可以关闭所有可能的第三方工具后再尝试运行ADB命令。 #### 3. 更新ADB工具 确保使用的ADB工具是最新版本。可以从Android SDK平台工具中下载最新的ADB二进制文件,并替换现有的ADB工具路径中的文件。更新后再次运行以下命令以验证是否正常工作: ```bash adb devices ``` #### 4. 检查环境变量配置 确保系统环境变量中配置的ADB路径指向正确的ADB工具目录。如果存在多个ADB工具安装路径,可能会导致版本冲突。建议仅保留一个最新的ADB工具路径。 #### 5. 使用独立的ADB实例 如果仍然无法解决问题,可以尝试在单独的命令行窗口中启动ADB服务器,避免与其他工具共享同一个ADB服务器实例: ```bash adb kill-server adb start-server ``` #### 示例代码:检查ADB设备连接状态 以下是一个简单的脚本,用于检查ADB设备连接状态并输出结果: ```python import subprocess def check_adb_devices(): try: result = subprocess.run(['adb', 'devices'], stdout=subprocess.PIPE, stderr=subprocess.PIPE, text=True) if "device" in result.stdout and not result.stdout.strip().endswith("device"): print("ADB设备已连接") else: print("未检测到任何设备") except Exception as e: print(f"发生错误: {e}") check_adb_devices() ``` ### 注意事项 - 确保手机已启用开发者模式和USB调试功能。 - 如果通过USB连接手机,请检查USB线缆是否支持数据传输。 - 如果使用无线ADB连接,请确保手机和电脑处于同一网络环境中,并正确配置IP地址[^2]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值