排查与 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 命令指定目标设备。通过端口转发连接的设备的标识符是您在 adb connect 命令中使用的地址(例如 localhost:5559)。

您可以使用 -s 标志将此标识符作为实参传递给 adb 命令,例如:

adb -s localhost:HOST_PORT shell ls

或者,您也可以将其设置为 ANDROID_SERIAL 环境变量,供后续 adb 命令使用:

export ANDROID_SERIAL=localhost:HOST_PORT

设置此环境变量后,您可以正常使用 adb 命令。