一、問題描述
今天在Eclipse中運行Android項目時遇到"The connection to adb is down, and a severe error has occured"這個問題,如下圖所示:
第一次遇到這個問題,上網查了一下原因,原來"The connection to adb is down, and a severe error has occured"指的就是Android模擬器連接埠被佔用了。
二、問題的排查過程
既然是連接埠被佔用了,現在就要看看到底是誰佔用了連接埠。
在sdk目錄下的platform-tools目錄中有一個adb.exe可執行程式,這個就是Android模擬器的啟動程式,如下圖所示:
開啟CMD命令列視窗,進入sdk目錄下的platform-tools目錄,輸入命令:adb start-serevr,如下圖所示:
因為我在搭建Android開發環境時,已經將sdk目錄下的platform-tools目錄加入到Path環境變數中,如下:
所以我在cmd命令中直接輸入命令:adb start-serevr是可以正常啟動並執行,不再需要進入到進入sdk目錄下的platform-tools目錄。
從上面的排查結果顯示來看,確實是連接埠被佔用了,接下來需要確定被佔用的連接埠號碼是多少,輸入命令:adb nodaemon server,如下圖所示:
OK,現在確定了,連接埠5037被佔用了,那就要找到究竟是誰敢佔用5037連接埠。
在cmd中輸入命令netstat -ano |findstr "5037",如下圖所示:
原來是5040這個進程佔用了連接埠,我們要把這個進程找出來,在cmd中輸入命令tasklist /fi "pid eq 5040",如下:
OK,已經找到了,是一個名字為shuame_helper.exe,開啟工作管理員,kill這個進程即可。
相信通過這個案例解析,大家之後再遇到Android模擬器連接埠被佔用的問題,一定會迎刃而解,再也不需要煩惱了。