由于Xcode和Android studio消耗很大,我在开发React Native应用程序时,在Mac上遇到了存储和处理能力问题。
我的问题是,当我在Mac上编码时,有没有任何方法可以在另一台电脑上运行模拟器(在我的情况下是android模拟器(?
谢谢
我尝试过下面的解决方案,它可能也适用于您。来源就在这个回购中。
如果你想在一台机器上编写和编译Android应用程序,并在另一台机器启动的模拟器上远程调试,请遵循以下说明:
准备
首先,您需要在远程计算机上安装SSH服务器。
Ubuntu
您可以使用OpenSSH。
sudo apt安装openssh服务器
Windows
您可以按照此链接在Windows上安装OpenSSH。
连接
现在您必须使用SSH隧道将本地计算机连接到远程服务器。
模拟器在每个实例上侦听两个TCP端口:5554用于telnet接口,5555用于与DDMS等工具的控制通信。所以你可能只需要5555转发端口就可以逃脱惩罚。每个后续模拟器都会获取下一个可用的偶数+奇数端口号元组。
请注意,您需要输入在远程服务器上运行的模拟器的ip地址,而不是模拟器的ip,还需要输入远程机器的用户名和主机名,而不是myuser和远程服务器。
Ubuntu
在本地机器上尝试:
ssh-NL 5554:仿真器ip:5554-L 5555:仿真器ip:5555myuser@remote-server
Windows
按照此链接说明,在下面添加两个源端口和目的地:
源端口:5554目的地:模拟器ip:5554
源端口:5555目的地:模拟器ip:5555然后连接到远程服务器。
ADB-
模拟器试图在启动时通知本地adb服务器;因此,您需要重新启动adb,以便它探测本地5554+端口。
adb kill服务器;adb设备
adb设备显示了一个新的模拟器emulator-5554,您可以像在本地机器上运行一样使用它。
运行
最后运行:
react原生运行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本机运行android--deviceId