设置ADB为TCP/IP模式:设备未找到?

17

我以前已经使用过这些命令将ADB设置为监听TCP/IP,但这次我很惊讶。问题在于它抛出的错误根本没有意义:

$ adb tcpip 5555
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
error: device not found

实际上,尝试将其置于USB模式下也无法执行,出现相同错误:

$ adb usb
error: device not found

仅供参考,adb 帮助文档中写道:

adb usb                      - restarts the adbd daemon listening on USB
adb tcpip <port>             - restarts the adbd daemon listening on TCP on the specified port

我在Android SDK中没有进行任何更改(也没有更新)。希望能得到帮助。


USB调试已启用吗? - smk
看起来你的设备由于某些原因没有通过USB连接。任何其他的ADB命令,例如adb shell,可能也会出现相同的错误。 - Adrian Taylor
1
请仔细阅读问题。我不是在尝试通过 USB 连接。 - m0skit0
你最近更新到了4.2.2吗? - Raghav Sood
我能够连接。这会影响我的电池吗? - Meher
显示剩余2条评论
7个回答

36
问题在于我必须通过USB连接一个安卓设备(可以是同一台设备或另一台设备)才能执行。
$ adb tcpip 5555
restarting in TCP mode port: 5555

那么我只需拔掉这个USB设备,通过TCP连接到局域网上的其他设备。

完全没有意义。


12
@AlexP。嗯...不是的。adb tcpip不会在设备上初始化任何内容。而且,我甚至没有连接通过USB连接的设备。我正在连接其他设备。这仍然毫无意义。 - m0skit0
2
它正在谈论设备上运行的“adbd守护程序”。 - Alex P.
1
@m0skit0,我知道已经过了一段时间,但是在阅读完所有内容后,我清楚地认识到你当时并没有理解问题的核心。只要你在设备本身上拥有 root 访问权限,就可以在不连接 USB 电缆的情况下通过网络获取 ADB。为此,您必须在设备的终端上作为 root 发出 setprop service.adb.tcp.port 5555 命令,然后按照 这个答案 中所述重新启动 adbd(ADB 守护程序)。在某些设备上,甚至有一个设置可以使这更容易。 - Marc.2377
1
@m0skit0,谢谢你的回答。只是为了绝对清楚:你所说的“设备”,是指智能手机,对吗?当我说“在您设备的终端上”时,我指的是“安卓终端模拟器”。 - Marc.2377
4
阅读对话后,我同意 @m0skit0 的观点——这根本没有任何意义。很容易证明:1)通过USB将AndroidDeviceA连接到PC;2)运行“adb tcpip 5555”,它将成功地显示“正在重新启动TCP模式端口:5555”;3)拔掉AndroidDeviceA;4)通过执行“adb connect 192.168.x.x:5555”将AndroidDeviceB通过无线网络连接到PC,它将成功地显示“已连接到192.168.x.x:5555”。显然,我们可以得出结论,通过USB连接的AndroidDeviceA是无用的,不需要设备守护程序操作,因为我们的目标是通过无线网络连接到AndroidDeviceB。 - Jing Li
显示剩余15条评论

5

确保您的设备在开发工具下设置为调试模式,然后在您的主机计算机的命令行中输入:

$ adb tcpip 5555                  - restarts the adbd daemon listening on TCP on the specified port (typically 5555)

restarting in TCP mode port: 5555

如果你收到“错误: 设备未找到”,你需要暂时使用USB电缆连接安卓设备。(甚至不需要是相同的设备,且无需保持连接状态)
然后,通过IP地址连接到安卓设备。(确保你的安卓设备已连接到本地网络,然后点击wifi网络连接以查看连接细节来查找IP地址。)
$ adb connect 192.168.0.10        - connects over network to remote device IP (replace 192.168.0.10 with your Android device's IP address)

connected to 192.168.0.10:5555

根据您的网络连接不同,第一次建立连接可能需要一分钟左右。

要切换回您的USB连接,请输入:

$ adb usb                         - restarts the adbd daemon listening on USB

附加说明:

  • 您不需要root访问权限即可使用此功能。
  • 您可能需要在防火墙中打开端口(5555)。
  • 您可以使用“ping”命令确保主机可以在网络上找到设备。

2
“你需要通过USB电缆暂时连接一个安卓设备。”没错,这就是我的回答(尽管@AlexP.对此很固执)。 - m0skit0

3
你可能想要的是:

您可能需要的是:

 connect <host>[:<port>]       - connect to a device via TCP/IP
                                 Port 5555 is used by default if no port number is specified.

所以:

$ adb connect 192.168.1.38

谢谢,但这不是问题,而且这个问题已经在2013年2月15日解决了 :) - m0skit0

2

adb usbadb tcpip <port> 命令控制设备上运行的 adbd 守护进程的传输模式。为了改变模式,当前的传输必须是可用的。在您的情况下,adbd 正在 USB 模式下运行 - 因此您需要连接 USB 电缆才能使模式更改请求到达守护进程。

如果您想避免只为启用 TCPIP 传输而连接 USB,则可以更改默认设置或从设备本身的终端模拟器手动切换。


我不需要通过USB连接设备来配置守护进程,仍然通过TCP连接。我也没有对其进行任何配置(除了启用调试)。 - m0skit0
我只能回答你所提出的问题。如果没有先提出正确的问题,你将无法得到正确的答案。在我的回答中,我只是解释了为什么“adb usb”和“adb tcpip”命令对你而言失败了。 - Alex P.
1
如何停止设备上的“adbd守护程序运行”? - Rahul Matte
3
你知道一种不用连接 USB 就可以实现的方法吗?每次重启后插上手机运行 adb tcpip 真的很麻烦。(我没有 root 权限。) - TWiStErRob

0

我也遇到了这个问题,并尝试在一周内解决它们。最终,当我将设备设置更改为允许在充电时进行调试时,问题在几分钟内得到解决。我还确保启用了USB调试,因为有时候当你选择允许在充电时进行调试时,USB调试会被禁用。

之后,我再次尝试使用adb tcpip 5555,哇!没有更多的no emulators...之类的消息了。然后,我使用adb connect 'ip address':5555连接,它就像魔法一样运行。


0

我认为这里的主要问题是,如果运行 adb connect 'ip address':5555 命令之前需要先运行命令 adb tcpip 5555,那么这两个命令是否独立无关呢?如果它们不独立,则这是一个愚蠢的设计。


1
您的回答目前写得不够清晰。请进行[编辑]以添加额外细节,帮助其他人理解它如何回答所提问。您可以在帮助中心查找更多有关编写良好回答的信息。 - Community

-2

连接手机和 USB 后,在手机上选择“仅充电”选项。


1
你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心找到有关如何编写良好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接