1. 程式人生 > >解決Android Studio的ADB連線不到手機問題

解決Android Studio的ADB連線不到手機問題

近期遇到AS連線手機執行時 ADB檢測不到:

蒐集了一些原因:

1.手機設定問題。開USB除錯 方法: 手機設定 - 開發人員選項 - USB除錯 - 勾選(開發者除錯被隱藏了,在關於手機中連續點選版本號N次即可)

2.排除掉硬體問題,usb埠不能使用,資料線問題

3.使用的SDK版本號要與自己手機的保持一致,保證手機的相容性

4.排除以上部分,還有一種可能,就是ADB埠被佔用了,我的就是這種情況,

解決方法:

1. 首先通過CMD啟動adb服務。這個時候會提示啟動失敗。

  E:\android-SDK-4.2\android-sdk\platform-tools>adb start-server


 adb server is out of date. killing... ADB server didn't ACK * failed to start daemon *

2. 服務啟動失敗的原因有很多,但一般是埠繫結失敗。我們來檢視一下埠繫結資訊。如圖所示,真的是埠綁定出了問題。
 

  E:\android-SDK-4.2\android-sdk\platform-tools>adb nodaemon server 出現cannot bind 'tcp:5037'時是埠繫結失敗,則繼續檢視到底是哪個埠給佔用了

3. 我們來看看哪個服務佔用了這個埠。這裡面有2個程序佔用了這個埠。

  E:\android-SDK-4.2\android-sdk\platform-tools>netstat -ano | findstr "5037"

  TCP 127.0.0.1:5037 0.0.0.0:0 LISTENING 5456
  TCP 127.0.0.1:5037 127.0.0.1:1221 TIME_WAIT 0
  TCP 127.0.0.1:5037 127.0.0.1:1222 TIME_WAIT 0

解決方法:先找到adb服務是否繫結端口出現問題,如果真的是繫結端口出現問題,找出該埠被哪個程序佔據,最後殺掉這個程序。

4.繼續執行執行tasklist 檢視列表pid為5456的程序(或者直接開啟工作管理員在程序中找到PID為5456的程序,結束掉即可。有些軟體遮蔽了工作管理員,下面上傳一個reg登錄檔,可以把一些軟體遮蔽的工作管理員調出來)

  E:\android-SDK-4.2\android-sdk\platform-tools>tasklist 


5.在控制檯下殺死在5456埠監聽的程序

E:\android-SDK-4.2\android-sdk\platform-tools>taskkill /pid 5456 錯誤: 無法終止 PID 為 5456 的程序。原因: 只能強行終止這個程序(帶 /F 選項)。E:\android-SDK-4.2\android-sdk\platform-tools>taskkill /pid 5456 /f成功: 已終止 PID 為 5456 的程序。 殺死造成問題的程序,再執行前面的命令

E:\android-SDK-4.2\android-sdk\platform-tools>netstat -ano | findstr "5037"

E:\android-SDK-4.2\android-sdk\platform-tools>adb nodaemon server

有些流氓軟體關不掉直接解除安裝。