原文链接:http://blog.csdn.net/beiminglei/article/details/7740685
根据原文的情况不同 稍微改了下 改正的地方 在文章最后
今天一不小心遇到个问题,问题截图如下
我试了N种google来的方法,都失效,现在把我的解决方法告诉大家,希望能帮到大家。
首先,我先罗列下我搜到的方法,大家也可以尝试。
1,关闭eclipse并在进程中杀掉adb.exe,然后重启。
2,如有真机连接,拔掉真机,重复1的步骤,
3,关掉eclipse,然后在命令行运行如下命令
adb kill-server
adb start-server
然后重启eclipse
还有别的类似的办法就不再这里多说了,
我的问题最根本其实是端口5037被占用,在命令行中运行netstat -a,会出现一堆东西,找找是否有关于5073端口的东西,经我验证我的是有东西的,所以我的端口被用,但是我已经将adb.exe杀掉,所以是别的东西占用了这个端口,回忆了下,最近有什么操作和之前不同,就是用豌豆荚连了下真机,那有可能就是豌豆荚占用的,我先关闭eclipse,我在进程中杀掉了豌豆荚,然后再重启eclipse,之后命令行执行adb reboot;出现下列情况
可以看出端口回来了,daemon 打开成功,而之前报错时在控制台中daemon是打开失败,现在问题基本解决了,这里出现了一个error,不要担心,只是没检测到设备,可能是没有运行模拟器或者没连真机导致的,现在就能运行项目检测了,我想问题应该能解决了。根据我的情况,第二天重新开机运行项目后又出现同样的问题,进程中又多了豌豆荚,但是我并没有打开豌豆荚,所以建议不要将豌豆荚设为开机启动。问题就能解决了。
如果有和我一样用豌豆荚安装apk的开发者遇到这样的问题可以尝试这种方法,最后我还是建议大家安装apk时还是最好用命令行push或者instal,其实我主张不用此类第三方软件,有时最原始的方法是最方便的。
这篇帖子居然这么火,好吧,不忍心就再更新个版本,帮助大家更快的解决问题;
大家如果尝试adb start-server之后
- C:\Users\xxxx>adb start-server
- adb server is out of date. killing...
- ADB server didn't ACK
- * failed to start daemon *
出现上面截图出现的问题的话那么基本就能肯定是5037端口被占用的问题,
现在大家可以来验证看看是不是我的这个猜想,利用命令行 adb nodaemon server
如果提示说
- cannot bind 'tcp:5037'
那么就说明了是5037端口被占用。
大家也就不用纠结是啥占用了,这个给出一个直观方便的方法,让大家立刻找到那个该死的东西。
那就是利用命令行:netstat -a | findstr "5037" 查看占用5037端口的进程
例如结果如下:
那么就能知道PID为4236的进程占用了该端口,在进程管理中找到PID为4236的进程,杀掉他,就好了哦
PS:如何查看PID的方法,在上面窗口中点击查看->选择列->勾选PID就好了,嘻嘻。
PS:命令行输入 netstat -ano | findstr "5037" 显示的带PID
我这里的这个端口是被kadb给占用了 是酷狗的一个可执行文件