- 时间:2020-12-18 15:47 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:解决Android模拟器端口被占用问题的办法
[b]一、问题描述[/b]
今天在Eclipse中运行Android项目时遇到"The connection to adb is down, and a severe error has occured"这个问题,如下图所示:
[img]http://files.jb51.net/file_images/article/201512/201512021542111.png[/img]
第一次遇到这个问题,上网查了一下原因,原来"The connection to adb is down, and a severe error has occured"指的就是Android模拟器端口被占用了。
[b]二、问题的排查过程[/b]
既然是端口被占用了,现在就要看看到底是谁占用了端口。
在sdk目录下的platform-tools目录中有一个adb.exe可执行程序,这个就是Android模拟器的启动程序,如下图所示:
[img]http://files.jb51.net/file_images/article/201512/201512021542122.png[/img]
打开CMD命令行窗口,进入sdk目录下的platform-tools目录,输入命令:[b]adb start-serevr[/b],如下图所示:
[img]http://files.jb51.net/file_images/article/201512/201512021542123.png[/img]
因为我在搭建Android开发环境时,已经将sdk目录下的platform-tools目录加入到Path环境变量中,如下:
[img]http://files.jb51.net/file_images/article/201512/201512021542124.png[/img]
[img]http://files.jb51.net/file_images/article/201512/201512021542125.png[/img]
所以我在cmd命令中直接输入命令:[b]adb start-serevr[/b]是可以正常运行的,不再需要进入到进入sdk目录下的platform-tools目录。
从上面的排查结果显示来看,确实是端口被占用了,接下来需要确定被占用的端口号是多少,输入命令:[b]adb nodaemon server[/b],如下图所示:
[img]http://files.jb51.net/file_images/article/201512/201512021542126.png[/img]
OK,现在确定了,端口5037被占用了,那就要找到究竟是谁敢占用5037端口。
在cmd中输入命令[b]netstat -ano |findstr "5037"[/b][b],[/b]如下图所示:
[img]http://files.jb51.net/file_images/article/201512/201512021542137.png[/img]
原来是5040这个进程占用了端口,我们要把这个进程找出来,在cmd中输入命令tasklist /fi "pid eq 5040",如下:
[img]http://files.jb51.net/file_images/article/201512/201512021542138.png[/img]
OK,已经找到了,是一个名字为shuame_helper.exe,打开任务管理器,kill这个进程即可。
相信通过这个案例解析,大家之后再遇到Android模拟器端口被占用的问题,一定会迎刃而解,再也不需要烦恼了。