一、問題描述
今天在eclipse中運行android項目時遇到"the connection to adb is down, and a severe error has occured"這個問題,如下圖所示:
第一次遇到這個問題,上網(wǎng)查了一下原因,原來"the connection to adb is down, and a severe error has occured"指的就是android模擬器端口被占用了。
二、問題的排查過程
既然是端口被占用了,現(xiàn)在就要看看到底是誰占用了端口。
在sdk目錄下的platform-tools目錄中有一個adb.exe可執(zhí)行程序,這個就是android模擬器的啟動程序,如下圖所示:
打開cmd命令行窗口,進入sdk目錄下的platform-tools目錄,輸入命令:adb start-serevr,如下圖所示:
因為我在搭建android開發(fā)環(huán)境時,已經(jīng)將sdk目錄下的platform-tools目錄加入到path環(huán)境變量中,如下:
所以我在cmd命令中直接輸入命令:adb start-serevr是可以正常運行的,不再需要進入到進入sdk目錄下的platform-tools目錄。
從上面的排查結(jié)果顯示來看,確實是端口被占用了,接下來需要確定被占用的端口號是多少,輸入命令:adb nodaemon server,如下圖所示:
ok,現(xiàn)在確定了,端口5037被占用了,那就要找到究竟是誰敢占用5037端口。
在cmd中輸入命令netstat -ano |findstr "5037",如下圖所示:
原來是5040這個進程占用了端口,我們要把這個進程找出來,在cmd中輸入命令tasklist /fi "pid eq 5040",如下:
ok,已經(jīng)找到了,是一個名字為shuame_helper.exe,打開任務管理器,kill這個進程即可。
相信通過這個案例解析,大家之后再遇到android模擬器端口被占用的問題,一定會迎刃而解,再也不需要煩惱了。