Android Please ensure that adb is correctly located at问题解决

本文介绍了如何解决在运行Android程序时出现的ADB连接错误。主要步骤包括:找到占用5037端口的进程(本例中为wandoujia_daemon.exe),结束该进程,将SDK路径加入环境变量,并重启Eclipse。

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

转:http://hi.baidu.com/lanmosonny240/item/4d405a82ade7ce9a4414cf98

 

遇到问题描述:

运行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:\adt-bundle-windows-x86_64-20130219\sdk\platform-tools\adb.exe' and can be executed.

 

adb概述(百度百科)

adb的全称为Android Debug Bridge,就是起到调试桥的作用。通过adb我们可以在 Eclipse中方便通过DDMS来调试Android程序,说白了就是 debug工具。adb的工作方式比较特殊,采用监听Socket TCP 5554等端口的方式让IDE和Qemu通讯,默认情况下adb会daemon相关的网络端口,所以当我们运行Eclipse时adb进程就会自动运行。
adb是 android sdk里的一个工具, 用这个工具可以直接操作管理android模拟器或者真实的andriod设备(如G1手机).  它的主要功能有:
* 运行设备的shell(命令行)
* 管理模拟器或设备的端口映射
* 计算机和设备之间上传/下载文件
* 将本地apk软件安装至 模拟器或android设备
ADB是一个 客户端-服务器端 程序, 其中客户端是你用来操作的电脑, 服务器端是android设备.

当你启动一个adb客户端,客户端首先确认是否已有一个adb服务进程在运行。如果没有,则启动服务进程。当服务器运行, adb服务器就会绑定本地的TCP端口5037并监听adb客户端发来的命令,—所有的adb客户端都是用端口 5037与adb服务器对话的.

 

1.  解决问题:

百度google大家多说的是任务管理器 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"

        wandoujia_daemon.exe          6540 Console                    1      4,276 K

接下来问题就好解决了,在任务管理器kill掉wandoujia_daemon.exe  .

2.  将D:\adt-bundle-windows-x86_64-20130219\sdk\platform-tools都加到环境变量中去。
(classpath或者path)

3.重启eclipse,运行android项目,可以了。

 

关于adb

附:http://www.cnblogs.com/playing/archive/2010/09/19/1830799.html

http://blog.youkuaiyun.com/winsunxu/article/details/7042972

 

<think>好的,我现在需要回答用户关于如何通过ADB查看进程及端口号,以及解决端口被占用的方法。首先,我得回忆一下ADB相关的命令和常见问题处理步骤。用户提到了端口号被占用的问题,这可能涉及查找占用端口的进程并终止它。 首先,用户需要查看进程和对应的端口号。ADB本身可能没有直接显示所有进程端口号的命令,但可以通过adb shell结合其他Linux命令来实现。比如,使用adb shell进入设备后,运行netstat或ps命令,或者结合grep来过滤信息。不过需要注意的是,Android设备上的工具可能和标准Linux有所不同,有些选项可能不可用。例如,netstatAndroid中可能不支持某些参数,这时候可能需要使用其他方法。 接下来是处理端口被占用的问题。通常步骤是找到占用端口的进程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` 重启服务。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值