cmd 重启adb和adb端口被占用的解决方法

本文介绍了解决ADB连接中断的问题,包括重启ADB服务、检查端口占用情况及释放被占用的端口等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

如果adb没有启动:

跳转到指定磁盘:

cmd命令:

(输入)cd.. :跳转到上一级目录

c:\>

(输入)D:
D:\>

跳转到指定的adb位置:

输入 cd D:\Users\Administrator\AppData\Local\Android\sdk\platform-tools

D:\>cd D:\Users\Administrator\AppData\Local\Android\sdk\platform-tools


然后输入命令adb start-service 打开adb(如果adb已配置到环境变量则可以直接执行此命令)。

出现如图所示,表示adb服务开启成功,就可以使用adb命令了。


关掉eclipse
然后输入命令 adb kill-server
          adb start-server
重启eclipse
//

如果上面方法不行,则看下面:


如果你用eclipse输出安卓程序时出现下面信息:
运行android程序控制台输出
    [2012-07-18 16:18:26 - ] The connection to adb is down, and a severe error has occured.
    [2012-07-18 16:18:26 - ] You must restart adb and Eclipse.
    [2012-07-18 16:18:26 - ] Please ensure that adb is correctly located at 'D:\java\sdk\platform-tools\adb.exe' and can be executed.
解决问题:
百度大家多说的是任务管理器 kill掉adb 或者重启adb server,但我任务管理器就没有adb ,猜测是某个程序占用了adb端口。于是按此思路查找。


5037为adb默认端口 查看该端口情况如下:
       netstat -aon|findstr "5037"
      TCP    127.0.0.1:5037         0.0.0.0:0              LISTENING       6540
发现6540占用了 5037端口,继续查看6540的task,发现是wandoujia  .如下所示
        tasklist|findstr "6540"
        tabc.exe          6540 Console                    1      4,276 K
接下来问题就好解决了,在任务管理器kill掉tabc.exe ,运行android程序,ok .
<think>好的,我现在需要回答用户关于如何通过ADB查看进程及端口号,以及解决端口占用方法。首先,我得回忆一下ADB相关的命令常见问题处理步骤。用户提到了端口号被占用的问题,这可能涉及查找占用端口的进程并终止它。 首先,用户需要查看进程对应的端口号。ADB本身可能没有直接显示所有进程端口号的命令,但可以通过adb shell结合其他Linux命令来实现。比如,使用adb shell进入设备后,运行netstat或ps命令,或者结合grep来过滤信息。不过需要注意的是,Android设备上的工具可能标准Linux有所不同,有些选项可能不可用。例如,netstat在Android中可能不支持某些参数,这时候可能需要使用其他方法。 接下来是处理端口占用的问题。通常步骤是找到占用端口的进程ID(PID),然后终止该进程。在Windows系统下,用户可能需要使用类似netstat -ano | findstr "5037"的命令来查找占用ADB默认端口5037的进程,然后使用taskkill命令终止。如果是Android设备本身的端口占用,可能需要通过adb shell进入设备后,使用kill命令终止进程。 需要注意的是,用户提供的引用中提到了taskkill命令的使用,以及ADB路径正确性的检查。因此,在回答中需要涵盖这些方面,比如如何确认ADB的安装路径是否正确,以及如何强制终止占用端口的进程。同时,引用中提到了使用dumpsys meminfo来查看内存使用情况,但这可能与当前问题关联不大,不过如果用户需要更详细的进程信息,可以提及相关命令。 另外,用户可能遇到ADB服务器端口占用的情况,这时候可能需要结束占用5037端口的进程。在Windows下,可以通过资源监视器或命令行工具查找,而在Linux或Mac下可以使用lsof命令。对于Android设备内部的端口占用,可能需要root权限才能终止某些系统进程,但普通应用进程可能不需要。 总结下来,回答的结构应该是先介绍如何查看进程及端口号,包括ADB命令系统命令的结合使用,然后详细说明解决端口占用的步骤,包括查找PID终止进程的方法,同时提醒用户检查ADB配置路径是否正确,避免因配置错误导致的问题。最后,可以生成相关问题,帮助用户进一步了解ADB的其他操作故障排除方法。</think>### 如何通过 ADB 查看进程与端口号并解决端口占用问题 #### 一、查看进程与对应端口号 1. **查看设备进程列表** 使用 `adb shell ps` 命令可列出当前设备运行的所有进程,包含进程名(如 `com.android.chrome`)进程 ID(PID)[^3]。 ```bash adb shell ps ``` 2. **查看端口占用情况(需设备支持)** - 若设备支持 `netstat` 命令,可通过以下方式查看端口与进程的关联: ```bash adb shell netstat -tulpn | grep <端口号> ``` - 若 `netstat` 不可用,可通过 `lsof` 命令(需设备支持): ```bash adb shell lsof -i :<端口号> ``` 3. **通过进程名反向查找端口** 若已知进程名,可先获取其 PID,再结合端口查询命令: ```bash adb shell pidof <进程名> # 获取 PID adb shell cat /proc/<PID>/net/tcp # 查看该进程占用的 TCP 端口 ``` --- #### 二、解决端口占用问题 1. **ADB 默认端口(5037)被占用解决方案** - **Windows 系统**: 1. 查找占用 5037 端口的进程: ```cmd netstat -ano | findstr "5037" ``` 示例输出: ``` TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 5124 ``` 最后一列为 PID(此处为 5124)[^4]。 2. 强制终止进程: ```cmd taskkill /pid 5124 /f /t ``` 参数说明: - `/f`:强制终止 - `/t`:终止进程及其子进程[^1]。 - **Linux/Mac 系统**: ```bash lsof -i :5037 # 查找进程 kill -9 <PID> # 终止进程 ``` 2. **设备内部端口占用** - 通过 `adb shell` 进入设备终端,使用 `kill` 命令终止目标进程: ```bash adb shell kill <PID> ``` - 若权限不足,需 root 权限: ```bash adb root adb remount adb shell kill <PID> ``` 3. **检查 ADB 配置** 若出现 `adb.exe` 路径错误(如引用[2]),需确认环境变量中 ADB 路径是否正确: ```bash # 示例报错信息 [2013-06-25 11:10:32 - MyWellnessTracker] Please ensure that adb is correctly located at 'E:\SDK\platform-tools\adb.exe' and can be executed[^2]。 ``` --- #### 三、注意事项 - 终止系统关键进程可能导致设备异常,操作前需确认进程用途。 - 频繁端口占用可能是 ADB 服务异常,可尝试 `adb kill-server && adb start-server` 重启服务。 ---
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值