簡體   English   中英

在 usb 斷開連接后,adb over wifi 被關閉了嗎?

[英]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 調試”。

https://stackoverflow.com/a/51904546/4470297

嘗試在沒有 USB 電纜的情況下連接到它。

  • 第 1 步。在你的手機上使用wifi adb來獲取 ip(需要有 root 的手機,但因為你在 stackoverflow 上,我猜你有一個)。
  • 第 2 步。在您的控制台中輸入 adb connect(ip 顯示在 wifi adb 中)

如果這不起作用,請發布您在嘗試連接時在控制台中收到的確切消息。

無根解決方案:

  • 在開發者設置中啟用 USB 調試,並通過 USB 將您的手機連接到您的計算機。
  • 運行 adb 命令, adb tcpip 5555 (確保端口 5555 沒有被任何防火牆程序阻止)
  • 獲取分配給設備的 Wi-Fi IP 地址並運行 adb 命令

    adb connect <IP_ADDRESS> .例如, adb connect 192.168.1.133

  • 現在您可以斷開 USB 電纜並通過 Wi-Fi 運行adb shelladb installadb 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",
        },

我建議:

  1. 確保您的兩台設備都在同一網絡上。
  2. 在運行 adb connect 時也給出端口號
  3. 確保默認端口 5555 未被任何其他服務使用
  4. 當您更改設備時,您是否仔細檢查了 ip(在 wifi 連接中 IP 不斷變化)

我的研究結果表明,這是 Android Studio 2.3.1 中的一些錯誤或意外行為,它在某些情況下會殺死正在運行的 adb 服務器(所有打開的連接)。 例如,當您斷開 USB 電纜或關閉 Android Studio 應用程序時。

重現步驟:

  1. 通過控制台窗口創建到android設備的TCP連接(即adb connect 192.168.0.96)
  2. 檢查設備是否已連接(adb 設備)
  3. 運行 Android Studio 並加載任何項目
  4. 打開選擇部署目標窗口
  5. 關閉此窗口和 Android Studio
  6. 檢查 adb 服務器是否已終止(adb 設備)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM