问题
今天跑 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 调试是独立的选项,必须单独打开。
正确步骤
正确顺序是这样的:
打开 USB 调试 设置 → 开发者选项 → USB 调试 → 打开
插入数据线 用支持数据传输的线(有些线只能充电)
在手机上授权 连接电脑后,手机会弹出对话框,勾选"始终允许来自此计算机",点允许
(可选)切换 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 调试界面