我正在尝试调试摩托罗拉Droid上的应用程序,但通过USB连接到设备时遇到一些困难。我的开发服务器是一个在Hyper-V中运行的Windows 7 64位虚拟机,因此我无法在来宾或主机中通过USB直接连接。
我安装了两种不同的USB over TCP解决方案,但连接似乎有问题,因为ADB监视器反复报告“devicemonitor failed to start monitoring”。是否有一种方法可以直接从开发机器上的客户端连接到设备上的守护程序,使用网络而不是USB连接或其他可行的选项?
我正在尝试调试摩托罗拉Droid上的应用程序,但通过USB连接到设备时遇到一些困难。我的开发服务器是一个在Hyper-V中运行的Windows 7 64位虚拟机,因此我无法在来宾或主机中通过USB直接连接。
我安装了两种不同的USB over TCP解决方案,但连接似乎有问题,因为ADB监视器反复报告“devicemonitor failed to start monitoring”。是否有一种方法可以直接从开发机器上的客户端连接到设备上的守护程序,使用网络而不是USB连接或其他可行的选项?
当前回答
为了以防万一,我写了一个.bat文件来帮我做这项工作。
我使用的是Visual Studio/Xamarin-只需将手机连接到USB,运行批处理文件,选择“C”进行连接,完成后,断开手机与USB电缆的连接。您将从那里通过Wifi连接。
注意:将脚本中的目录更改为电脑上adb.exe所在的位置,并编辑手机的IP地址。
@echo off
cls
c:
cd\
cd C:\Program Files (x86)\Android\android-sdk\platform-tools\
:choice
set /P c=Do you want to connect or disconnect[C/D]?
if /I "%c%" EQU "C" goto :connect
if /I "%c%" EQU "D" goto :disconnect
goto :choice
:connect
echo plug phone in via USB. Make sure emulator is switched off
pause
adb tcpip 5555
adb connect 192.168.0.32:5555
echo finished - unplug USB
pause
exit
:disconnect
adb usb
echo finished - ADB is reset to USB mode
pause
希望它能帮助到某人!
其他回答
我创建了一个批处理文件,用于通过TCP自动启用ADB并将其连接到通过USB连接的设备。有了它,您不必手动输入IP。
@echo off
setlocal
REM Use a default env variable to find adb if possible
if NOT "%AndroidSDK%" == "" set PATH=%PATH%;%AndroidSDK%\platform-tools
REM If off is first parameter then we turn off the tcp connection.
if "%1%" == "off" goto off
REM Set vars
set port=%1
set int=%2
if "%port%" == "" set port=5557
if "%int%" == "" set int=wlan0
REM Enable TCP
adb -d wait-for-device tcpip %port%
REM Get IP Address from device
set shellCmd="ip addr show %int% | grep 'inet [0-9]{1,3}(\.[0-9]{1,3}){3}' -oE | grep '[0-9]{1,3}(\.[0-9]{1,3}){3}' -oE"
for /f %%i in ('adb wait-for-device shell %shellCmd%') do set IP=%%i
REM Connect ADB to device
adb connect %IP%:%port%
goto end
:fail
echo adbWifi [port] [interface]
echo adbWifi off
goto end
:off
adb wait-for-device usb
:end
来自adb--帮助:
connect <host>:<port> - Connect to a device via TCP/IP
顺便说一下,这是一个命令行选项。
您应该尝试将手机连接到Wi-Fi,然后从路由器获取其IP地址。它在蜂窝网络上不起作用。
端口是5554。
另外一个注意事项(艰难地学会了):您不应该同时激活您的公司VPN连接。。。
我在同一个问题上是结构化的,但一个简单的破解adb反向tcp:<PORT>tcp:<PORT>对我有效。它允许系统接受tcp请求。
感谢您的阅读
对于Windows用户:
步骤1:您必须在Android手机中启用开发者选项。您可以使用这种方式启用开发人员选项。•打开“设置”>“关于”>“软件信息”>“更多”。•然后点击“Build number”七次以启用开发者选项。•返回“设置”菜单,现在您可以看到“开发人员选项”。•点击它并从下一屏幕的菜单中打开USB调试。
第2步:
打开cmd并键入adb。如果发现adb不是有效的命令,则必须向环境变量添加路径。
•首先转到SDK安装文件夹沿着这条路走,这条路只是一个例子。D: \softwares\Development\Andoird\SDK\SDK\平台工具\;D: \softwares\Development\Andoird\SDK\SDK\tools;•现在搜索windows系统高级设置
•
打开环境变量。
然后打开路径并粘贴以下路径这是一个例子。你的SDK路径与我的不同,请使用你的。D: \softwares\Development\Andoird\SDK\SDK\平台工具\;D: \softwares\Development\Andoird\SDK\SDK\tools;
步骤3:
打开cmd并键入adb。如果您仍然看到adb不是有效的命令,那么您的路径没有正确设置,请执行上述步骤。
现在,您可以将android手机连接到PC。
打开cmd并键入adb设备,您可以看到您的设备。查找您的电话ip地址。
类型:-adb-tcpip 5555
获取手机的IP地址
adb shell netcfg
Now,
adb connect "IP address of your phone"
现在运行您的android项目,如果没有看到您的设备,请再次键入adb connect您手机的IP地址
对于Linux和macOS用户:
步骤1:打开终端并使用安装adb
sudo apt-get安装android工具adb android工具fastboot
通过USB电缆将手机连接到PC。在终端中键入以下命令
adb tcpip 5555
使用adb,连接你的android手机ip地址。
删除手机。