[英]Adb over wifi killed off after usb disconnect?
因此,使用我的 nexus 5,我可以輕松地通過 wifi 連接 adb:
adb tcpip 5555
adb connect 192.xxx.x.xx
然后斷開 usb 電纜。 我有另一個設備正在嘗試連接(Dell venue 8 平板電腦),但它似乎在拉出 usb 后瞬間斷開了 adb wifi 連接。
我使用相同的命令:
adb tcpip 5555 (<- without another device connected)
adb connect 192.xxx.x.xx (tablet ip here)
在此之后執行 adb devices 顯示 wifi adb 連接以及 usb 連接,但是對於平板電腦,一旦我終止 usb 連接,wifi adb 連接也會終止。
有沒有人對為什么會發生這種情況有任何想法?
出於某種原因,在僅充電模式下連接設備解決了這個問題。 在連接設備之前,請確保啟用“僅在充電模式下允許 ADB 調試”。
嘗試在沒有 USB 電纜的情況下連接到它。
如果這不起作用,請發布您在嘗試連接時在控制台中收到的確切消息。
adb tcpip 5555
(確保端口 5555 沒有被任何防火牆程序阻止)獲取分配給設備的 Wi-Fi IP 地址並運行 adb 命令
adb connect <IP_ADDRESS>
.例如, adb connect 192.168.1.133
現在您可以斷開 USB 電纜並通過 Wi-Fi 運行adb shell
、 adb install
或adb push
命令。
要切換回 USB 模式並禁用無線模式,請運行以下 adb 命令。
adb usb
您也可以簡單地重新啟動手機以切換回 USB 模式。
先決條件
Android 設備和計算機應連接在同一網絡中。 (如果您沒有任何網絡,則可以通過啟用設備中可用的 Wifi 熱點來創建自己的網絡)
第1步:
使用 USB 數據線將 Android 設備連接到計算機
第 2 步:在終端中使用以下命令確保 adb 在 USB 模式下運行。
$adb USB
在 USB 模式下重新啟動 通過 USB 連接到設備。
第 3 步:
在終端中執行以下命令以確保 adb identify/list 與設備連接。
$adb 設備
第 4 步:使用以下命令將 adb 模式從 USB 更改為 tcpip。
$adb tcpip 5555
在 TCP 模式下重啟端口:5555
第 5 步:現在,adb 在 TCP/IP 模式下運行,讓我們找到 Android 設備的 IP 地址。
轉到 Android 設備中的設置 -> 關於 -> 狀態 -> IP 地址。 記下連接的 Android 設備的 IP 地址。
步驟 6:使用以下命令連接 ADB 與 IP 地址
$adb 連接#.#.#.#
連接到#.#.#.#:5555
第 7 步:現在 adb 正在通過 Wi-fi 工作,您可以從 Android 設備上拔下 USB 電纜。
第 8 步:確認 adb 正在通過 Wi-fi 工作並且您的設備仍處於連接狀態。 您可以使用以下命令
$adb 設備
#.#.#.#:5555 設備
您現在可以開始了!通過 Wi-fi 享受 ADB。
使用以下命令將 ADB 模式更改為 USB
$adb USB
對我來說,這似乎是 ADB 服務器版本 (39) 的一個錯誤。 我更新到 (41) 並且問題消失了。
這太奇怪了,因為我在兩台不同的 PC 上使用版本 39,其中一台 adb/wi-fi 工作正常,而在另一台上,只要我拔下 USB 電纜,Wi-Fi 設備也會斷開連接。 🤷🏻♂️
ABD debugging over wifi drops, when third-party USB device is plugged in the phone
https://issuetracker.google.com/issues/112410852時,根據 Google 在 ABD debugging over wifi drops 上的回應,這是預期的行為:
Status: Won't Fix (Intended Behavior)
usb state changes cause the system to restart adbd.
因此,您可以使用flutter attach
命令重新附加調試。
這是 vscode (.vscode/launch.json) 的示例:
{
"version": "0.2.0",
"configurations": [
{
"name": "Flutter",
"request": "launch",
"type": "dart",
"program": "${workspaceFolder}/lib/main.dart",
},
{
"name": "Flutter Re-Attach",
"request": "attach",
"type": "dart",
"program": "${workspaceFolder}/lib/main.dart",
},
我建議:
我的研究結果表明,這是 Android Studio 2.3.1 中的一些錯誤或意外行為,它在某些情況下會殺死正在運行的 adb 服務器(所有打開的連接)。 例如,當您斷開 USB 電纜或關閉 Android Studio 應用程序時。
重現步驟:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.