问题

今天跑 flutter devices 想在真机上调试,结果只看到 macOS、Chrome 和 iPhone,Android 手机完全不见踪影。

$ flutter devices
Found 3 connected devices:
  macOS (desktop)                  macos                 • darwin-arm64
  Mac Designed for iPad (desktop)  mac-designed-for-ipad • darwin
  Chrome (web)                     chrome                • web-javascript

手机明明插着,开发者模式也开了,就是认不出来。

排查过程

以为是 Android SDK 或者驱动的问题,跑了 flutter doctor,结果:

[✓] Android toolchain - develop for Android devices (Android SDK version 36.1.0)

Android SDK 没问题。adb devices 也是空的。说明问题不在 Flutter 层面,而是 macOS 根本没识别到手机。

原因

最后想起来——USB 调试没开

光开"开发者模式"不够,USB 调试是独立的选项,必须单独打开。

正确步骤

正确顺序是这样的:

  1. 打开 USB 调试 设置 → 开发者选项 → USB 调试 → 打开

  2. 插入数据线 用支持数据传输的线(有些线只能充电)

  3. 在手机上授权 连接电脑后,手机会弹出对话框,勾选"始终允许来自此计算机",点允许

  4. (可选)切换 USB 模式 从通知栏下拉 → USB 选项 → 选择"传输文件(MTP)"

搞定之后再跑 flutter devices,Android 设备就出现了:

$ flutter devices
Found 4 connected devices:
  macOS (desktop)                  macos                 • darwin-arm64
  ...
  Pixel 6a (mobile)               android-arm64         • Android 14

小结

这是一个低级错误,但确实值得记录。开发者模式和 USB 调试是两回事,平时用得少真的会忘。下次遇到类似问题,先检查这三点:

  • USB 调试开了没
  • 数据线支不支持数据传输
  • 授权弹窗点了没

题图:Flutter 调试界面