如果adb devices出現5037端口未被占用依舊顯示獲取失敗,出現以下報錯時的解決辦法


問題:

win7 64位系統使用adb命令連接模擬器,在5037端口未被占用情況下,報以下錯誤:

   * daemon not running. starting it now on port 5037 *
   CreateProcess failure, error 2
   * failed to start daemon *
   error: cannot connect to daemon

解決方法:

1.將本機C:\WINDOWS\System32下的adb.exe文件復制到C:\Windows\SysWOW64下
2.將本機C:\WINDOWS\System32下的AdbWinApi.dll文件復制到C:\Windows\SysWOW64下

 

解決過程:

1、初一看應該是5037端口被占用了,一個比較常見的錯誤,執行命令查看5037端口被誰占用了:netstat -ano | findstr "5037"或執行tasklist | findstr "9244",但是神奇的事情發生了,結果是沒有任何程序占用該端口

2、於是執行adb kill-server ,OK,再執行adb start-server,又提示相同的錯誤了,adb無法在5037端口啟動

3、執行一下adb nodaemon server命令看看什么情況,這是一個比較有用的命令,一般情況下它會告訴我們哪里出問題了,adb nodaemon server,不幸的是仍然沒有提示任何錯誤

4、檢查環境變量配置,沒有錯誤

5、基本排除adb本身的錯誤,開始定位CreateProcess failure, error 2 這個錯誤,查到了錯誤代碼:

windows error code 2 means: 2 The system cannot find the file specified. ERROR_FILE_NOT_FOUND
and from the source code this is after a call to CreateProcess() and the file name is given by GetModuleFileName()

已經查證過不是環境配置的問題,所以定位為系統無法啟動該文件

6、進入C:\WINDOWS\System32目錄,檢查adb相關文件,都是正確的

7、復制\System32目錄下的adb.exe文件到C:\WINDOWS\SysWOW64 ,再次執行adb devices命令,提示缺失AdbWinApi.dll文件,再將\System32目錄下的AdbWinApi.dll文件copy到C:\WINDOWS\SysWOW64,執行adb devices命令成功


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM