最近调试RN,发现用usb连着真的很不舒服,就想到了以前用android studio插件无线调试的时候。但是呢,ADB WIFI这个插件怎么都不起作用了,卸载重装也不行。
(对了,我的操作系统用的macos high serria。)这就很蛋疼了,于是呢,就去百度,习得如下解决方法:在命令行中输入:adb connect xxx.xxx.xxx.xxx:5555
(xxx.xxx.xxx.xxx这个是你手机的ip地址,记住,手机连接的wifi要和电脑连的wifi要在同一局域网下!)。这个时候可能会出现unable to connect to 192.168.1.201:5555,但是,不要慌,你再输入一条命令: adb tcpip 5555,然后回车,
再输入刚刚的命令:adb connect xxx.xxx.xxx.xxx:5555,这个时候就可以了。
然后就可以拔掉usb数据线了。这个时候重点来了,RN项目不能调试了,说不能连到本地的服务器,怎么办呢。
这个时候,我再执行命令: adb reverse tcp:8081 tcp:8081(这个命令的作用,
做过rn项目的都知道的,不了解的看官网),我以为这个时候奇迹会出现,可以调试了,但是,重点来了,它竟然给我提示
error: more than one device/emulator
这个就很尴尬了,明明我就只连了一个手机啊,怎么会有多个?不死心,执行命令:adb devices,出现如下:
List of devices attached
192.168.31.116:5555 device
这个就更尴尬了,明明就显示一个啊,但是刚刚为什么显示说多个,怎么办呢,没辙了,尝试过各种方式,都不行,最后误打误撞成功了,解决方案:摇晃手机,打开RN项目的开发者菜单,点击最下面的Dev Settings,然后找到Debug server host&port for device,
(这个是解决安卓5.0以下和5.0版本以上RN项目调试的功能),复制官方的文档:
(Android 5.0及以上)使用adb reverse命令
注意,这个选项只能在5.0以上版本(API 21+)的安卓设备上使用。
首先把你的设备通过USB数据线连接到电脑上,并开启USB调试(关于如何开启USB调试,参见上面的章节)。
- 运行
adb reverse tcp:8081 tcp:8081
- 不需要更多配置,你就可以使用
Reload JS
和其它的开发选项了。
(Android 5.0以下)通过Wi-Fi连接你的本地开发服务器
- 首先确保你的电脑和手机设备在同一个Wi-Fi环境下。
- 在设备上运行你的React Native应用。和打开其它App一样操作。
- 你应该会看到一个“红屏”错误提示。这是正常的,下面的步骤会解决这个报错。
- 摇晃设备,或者运行
adb shell input keyevent 82
,可以打开开发者菜单。 - 点击进入
Dev Settings
。 - 点击
Debug server host for device
。 - 输入你电脑的IP地址和端口号(譬如10.0.1.1:8081)。在Mac上,你可以在系统设置/网络里找查询你的IP地址。在Windows上,打开命令提示符并输入
ipconfig
来查询你的IP地址。在Linux上你可以在终端中输入ifconfig
来查询你的IP地址。 - 回到开发者菜单然后选择
Reload JS
。