首页 > 解决方案 > 在不同设备上为 React Native 应用程序运行模拟器

问题描述

由于 Xcode 和 Android Studio 消耗很多,我在开发 React Native 应用程序时在我的 Mac 上遇到了存储和处理能力问题。

我的问题是,当我在 Mac 上编码时,有什么方法可以在另一台 PC 上运行模拟器(在我的情况下是 android 模拟器)?

谢谢

标签: androidreact-nativeandroid-emulator

解决方案


我尝试了以下解决方案,它也可能对您有用。来源在这个 repo中。

如果您想在一台机器上编写和编译 Android 应用程序并在另一台机器上启动的模拟器上远程调试它,请按照以下说明操作:

准备

首先,您需要在远程机器上安装 SSH 服务器。

Ubuntu

您可以使用 OpenSSH。

sudo apt install openssh-server

视窗

您可以通过此链接在 Windows 上安装 OpenSSH 。

联系

现在您必须使用 SSH 隧道将本地计算机连接到远程服务器。

模拟器在每个实例上侦听两个 TCP 端口:5554 用于 telnet 接口,5555 用于控制与 DDMS 等工具的通信。因此,您可能只需要转发端口 5555 就可以侥幸成功。每个后续仿真器都采用下一个可用的偶数+奇数端口号元组。

请注意,您需要输入在远程服务器上运行的模拟器的 IP 地址,而不是 emulator-ip,还需要输入远程机器用户名和主机名,而不是 myuser 和 remote-server。

Ubuntu

在本地机器上尝试:

ssh -NL 5554:emulator-ip:5554 -L 5555:emulator-ip:5555 myuser@remote-server

视窗

按照此链接说明并在下面添加两个源端口和目标:

源端口:5554 目标:emulator-ip:5554

源端口:5555 目标:emulator-ip:5555 然后连接到远程服务器。

亚行

模拟器在启动时尝试通知本地 adb 服务器;因此,您需要重新启动 adb 才能探测本地 5554+ 端口。

adb 杀死服务器;亚行设备

adb devices 显示了一个新的模拟器——emulator-5554——你可以像在本地机器上运行一样使用它。

跑步

最后运行:

react-native run-android

该应用程序应安装在模拟器上,但您可能会遇到错误:

错误:多个设备/模拟器无法运行 adb reverse:命令失败:path/to/sdk/adb -s emulator-5554 reverse tcp:8081 tcp:8081 您需要在应用程序的开发人员菜单中指定调试主机 IP 和端口-> 开发设置 -> 调试服务器主机和端口,即您的本地机器 IP 地址和 8081 端口。

请注意,安装 APK 后,您无需执行任何这些步骤。您可以只启动 npm 服务器:在本地机器的项目目录中启动 npm start,在远程机器的模拟器上运行应用程序,然后重新加载。如果还有另一个错误:

线程“设备列表监视器”中的异常 java.lang.NullPointerException

尝试:

react-native run-android --deviceId


推荐阅读