本文参考:http://blog.csdn.net/anod/article/details/18899075,http://jingyan.baidu.com/article/647f0115cd62977f2148a88d.html点击打开链接
用笔记本给手机刷了一次rom,结果,再用eclipse做android开发时就出现问题。
手机插上usb线,启动eclipse,和正常的情况下一样,能连接调试。但只要在命令行下用adb命令,直接提示adb server没启动,然后就自动启动adb server,但此时,所有设备显示“offlline”。看起来非常不合理。
分析了半天,同时也上网找了些帖子看,最后终于破案:
原因在于刷机程序向系统中拷贝了一个adb.exe,同时,每次系统引导是会启动它。而开发使用的adb.exe跟这个很显然不是一个。因此,在命令行下使用adb命令时就出现“服务没启动”。它也启动不了,因为监听端口被用了。这一点,可以通过使用“adb nodaemon server”可以看出来。
那么,解决办法就很简单了:
先找到占用端口的那个adb.exe在哪儿。在控制台用“netstat -ano”命令看一下谁用了“5037”这个tcp端口。输出结果的最后一列的数字“PID”就是它的标识。记住这个id,并且到任务管理器的进程列表里去找这个id。找到后在对应进程上点右键,找到装载进程的文件,这就是罪魁祸首了。在我的笔记本上,通过以上步骤找到了一个放在windows目录下的“adb.exe",看属性,显示数字签名是“ZTE COPORATION",也就是俺手机的生产商了。显然这是刷机的时候,刷机软件拷进去的。直接在任务管理器里把”adb.exe"干掉,然后把对应的文件删掉(adb.exe)。
回到控制台,再用“adb start-server”,把手机插拔一次就一切复原了。
至此,问题解决。最后吐槽下刷机软件。我都把你卸载了,还留一堆东西啊~~~~
如何查看pid
-
先打开任务管理器,在任务栏上右键,选择弹出菜单中的“启动任务管理器”这一项。
-
进入任务管理器之后,在“进程”这一项,找到百度云管理这个进程,如下图,找到了,但是没有这个进程ID,要如何办呢?
-
任务管理器在默认下,是不显示进程ID的,需要通过设置,才能显示,设置方法,在“查看”菜单中,打开“选择列”。
-
进入选择进程页列窗口,在第一项就是进程ID,会显示为PID,即process ID,将这一项勾选上,确定。
-
返回到进程窗口,就会显示PID这一列,百度云管家的进程ID是484这一个。
-
如何用命令关闭百度云管家呢?先从开始菜单中打开“运行”程序,输入cmd命令, 确定。
-
进入命令提示符窗口后,在光标闪动处,输入Tskill 484这个命令,回车即可关闭百度云管家这个程序。
-
还有一个方法查看进程ID,就是用命令查看法,同样打开命令提示符,在光标处,输入tasklist命令,确定。
-
就会列出所有当前运行程序的ID,如下图,在PID这一列,应用程序在“映像名称”这一列。
-