排解與 Starnix 的 ADB 連線問題

本頁提供疑難排解提示,說明如何透過 ADB 連線至 Fuchsia 裝置。

如果無法使用 adb 指令透過 USB 連線至 Fuchsia 裝置,可以透過 TCP 通訊埠轉送連線至 Starnix 內執行的 Android 執行個體:

  1. 在一個終端機中,將主機通訊埠轉送至裝置的 ADB 通訊埠 (5555):

    ffx forward "HOST_PORT=>5555"

    HOST_PORT 替換為電腦上可用的通訊埠 (例如 5559)。

  2. 在第二個終端機中,將 ADB 伺服器連線至該主機通訊埠:

    adb connect localhost:HOST_PORT

不過,設定失敗的原因有很多,因此本頁面提供常見問題的解決方法。

建立與模擬器的 ADB 連線

如要與 Fuchsia 模擬器 (FEMU) 建立 ADB 連線,可以改為執行下列指令:

ffx starnix adb connect

這項指令可讓 adb 使用 TCP 連線至 Fuchsia 模擬器,並使用 ffx 提供的網路位址進行連線。

多部 adb 裝置

如果有多部 Android 裝置連線至開發電腦,或 Android 裝置在模擬器中執行,您可能會看到 adb 發生錯誤,指出有多部裝置存在,系統不知道要使用哪一部。

如要確認開發機的 ADB 伺服器是否看到多部裝置,請執行下列指令:

adb devices -l

如果輸出內容列出多部裝置,您需要為 adb 指令指定目標裝置。透過通訊埠轉送連線的裝置 ID 是您在 adb connect 指令中使用的位址 (例如 localhost:5559)。

您可以使用 -s 旗標,將這個 ID 做為引數傳遞至 adb 指令,例如:

adb -s localhost:HOST_PORT shell ls

或者,您也可以將其設為 ANDROID_SERIAL 環境變數,後續的 adb 指令就會使用該變數:

export ANDROID_SERIAL=localhost:HOST_PORT

設定這個環境變數後,您就可以正常使用 adb 指令。