我正在尝试调试摩托罗拉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连接或其他可行的选项?
当前回答
首先,您必须通过USB连接设备
然后将设备连接到WIFI并获取IP地址。当仍然通过usb连接时,在命令行或通过Android Studio终端键入
adb tcpip 5555
adb connect <device IP>:5555
您将看到以下消息:
restarting in TCP mode port: 5555
connected to 172.11.0.16:5555
现在卸下USB电缆,您仍会看到logcat正常
完成。享受
其他回答
另外一个注意事项(艰难地学会了):您不应该同时激活您的公司VPN连接。。。
如果您想通过WiFi轻松连接设备以运行、调试或部署Android应用程序,可以使用我开发的开源IntelliJ插件。这里是代码,这里是可以使用的插件。
用法很简单。这里有一张gif图:
步骤1。
确保adb主机和Android设备都在同一个Wifi网络上。
步骤2。
使用USB电缆将Android设备与计算机连接。一旦你这样做,你的主机将检测到你的设备,adb将开始在电脑上以USB模式运行。您可以使用adb设备检查连接的设备,同时通过执行adb-USB确保adb在USB模式下运行。
$ adb usb
restarting in USB mode
$ adb devices
List of devices attached
ZX1D63HX9R device
步骤3。
使用以下命令在tcpip模式下重新启动adb:
$ adb tcpip 5556
restarting in TCP mode port: 5556
步骤4。
查找Android设备的IP地址。有几种方法可以做到这一点:
方式:1转到设置->关于手机/平板电脑->状态->IP地址。方式:2转到可用的Wi-fi网络列表。你连接的那个,点击它并了解你的IP。方法:3尝试$adb-shell netcfg。
现在您知道了设备的IP地址,请将adb主机连接到它。
$ adb connect 192.168.0.102:5556
already connected to 192.168.0.102:5556
$ adb devices
List of devices attached
ZX1D63HX9R device
192.168.0.102:5556 device
步骤5。
拔下USB电缆,您应该已连接到设备。如果在adb设备中看不到它,只需使用上一步的命令重新连接:
$ adb connect 192.168.0.102:5556
connected to 192.168.0.102:5556
$ adb devices
List of devices attached
192.168.0.102:5556 device
要么你现在就可以走了,要么你需要通过执行adb-kill服务器来杀死你的adb服务器,然后再次完成所有步骤。
希望这有帮助!参考:
http://developer.android.com/tools/help/adb.html#wirelesshttp://codetheory.in/android-debug-bridge-adb-wireless-debugging-over-wi-fi/
我创建了一个批处理文件,用于通过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
我找到了一个方便的方法,我想与大家分享。
对于Windows
USB访问一次
不需要根
将手机和电脑连接到热点,或从手机运行便携式热点并将电脑连接到该热点。
按照brian的指示获取手机的ip(如果你正在使用手机制作热点,则不需要)
adb shell ip -f inet addr show wlan0
打开记事本
写下这些
@echo off
cd C:\android\android-sdk\platform-tools
adb tcpip 5555
adb connect 192.168.43.1:5555
将上面给出的位置更改为电脑包含abd.exe文件的位置
将ip更改为手机ip。
注意:上面给出的IP是android设备成为热点时的基本IP。如果您正在连接到wifi网络,并且设备的IP在每次连接到热点时都在不断变化,您可以通过在wifi设置中进行配置使其保持静态。谷歌搜索。
现在将文件保存为ABD_Connect.bat(MS-DOS批处理文件)。
将其保存在某个位置,并指向“桌面”或“开始”按钮的快捷方式。
通过USB连接一次,然后尝试运行一些应用程序。之后,只要您想无线连接,请双击快捷方式。
注意:有时您需要在每次调试应用程序时打开快捷方式。所以在桌面上为快捷键设置快捷键会更方便。我做了一个快捷键,如Ctrl+Alt+S。所以每当我想调试时,我都会按Shift+F9和Ctrl+Alt+S
注意:如果在cmd窗口中发现device=null错误,请检查您的IP,它可能已更改。