日期:2014-05-16  浏览次数:20453 次

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

转: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 ?.