我使用的是 mac 和 Expo 4.4.4。
当我尝试在 Android 模拟器上运行 Expo 时出现以下错误:
Couldn't start project on Android: could not connect to TCP port 5554: Connection refused
我在终端中尝试了以下命令来摆脱离线设备
$ adb devices
List of devices attached
emulator-5554 offline
emulator-5556 device
$ adb kill-server
$ adb start-server
* daemon not running; starting now at tcp:5037
* daemon started successfully
$ adb devices
List of devices attached
emulator-5554 offline
emulator-5556 device
$ lsof -i :5555
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
adb 13691 sujayun 9u IPv4 0xd716e907b32c7e05 0t0 TCP localhost:54347->localhost:personal-agent (ESTABLISHED)
$ kill -9 13691
$ adb devices
List of devices attached
emulator-5554 offline
emulator-5556 device
无论我尝试什么,我都无法摆脱离线设备。
有什么办法可以去掉这个吗?或者在 TCP 5556 上开始博览会?
经过3天的奋战,发现问题并解决。
我检查了监听不同端口的所有进程
$ sudo lsof -i -P | grep LISTEN
launchd 1 root 11u IPv6 0x19938282208649b9 0t0 TCP *:5900 (LISTEN)
kdc 196 root 5u IPv6 0x1993828220866e79 0t0 TCP *:88 (LISTEN)
wftpserve 383 root 7u IPv6 0x1993828220864399 0t0 TCP *:5555 (LISTEN)
wftpserve 383 root 8u IPv4 0x199382822086dee9 0t0 TCP *:5555 (LISTEN)
mDNSRespo 285 _mdnsresponder 82u IPv4 0x19938282276928c9 0t0 TCP *:53 (LISTEN)
MEGAclien 546 root 32u IPv4 0x1993828225a7e8c9 0t0 TCP localhost:6341 (LISTEN)
adb 1064 root 12u IPv4 0x19938282279288c9 0t0 TCP localhost:5037 (LISTEN)
检查 TCP 正在侦听 5554 + 1 = 5555 的服务
此服务可能会导致离线模拟器自动启动
用 PID 杀死该进程,
就我而言,它是 PID 383 的 wftpserve 服务
$ sudo kill -9 383
然后模拟器就消失了
$ adb devices
List of devices attached
然后 Expo 在我的 Android 模拟器上开始了
打开提示命令并输入以下内容
1-第一
$ adb devices
2秒
$ adb kill-server
3-以及下一个
$ adb start-server
有同样的问题:错误:无法连接到 TCP 端口 5554:无法连接到 127.0.0.1:5554:无法建立连接,因为目标计算机主动拒绝。 (10061)
遵循 @sujay UN 在 Windows 上的回答。
只需使用
列出设备adb devices
然后删除在端口5554上运行的进程