记一次奇葩的 ADB bug

哪怕在 Android-Studio 里把 emulator 都删除完了,adb 还是报存在一个 offline 的 emulator-5554,导致 push 的时候都要用 -s 选择设备,很烦人。

$ ADB_TRACE=all adb devices   
01-17 09:57:10.910 2482922 2482922 D adb     : adb_trace.cpp:198 Android Debug Bridge version 1.0.41
...
01-17 09:57:10.910 2482922 2482922 D adb     : adb_io.cpp:97 readx: fd=3 wanted=22 got=22 656d756c... emulator-5554.of [truncated]
emulator-5554   offline

网上搜索

我用 ss 看是否有进程占用 5554 端口,然而并没有。

仔细再看 S-O,发现 adb 会检查 5555 端口,而我电脑上碰巧有一个 caddy 监听 5555 端口 :sweat_smile:

adb 识别设备的机制真奇葩。