React Native 在多个同时运行的 Android 模拟器上运行

Posted

技术标签:

【中文标题】React Native 在多个同时运行的 Android 模拟器上运行【英文标题】:React Native run on multiple simultaneous Android emulators 【发布时间】:2018-01-17 05:07:46 【问题描述】:

我想同时在至少 2 个 android 模拟器上测试我的应用。我可以启动 2 个模拟器,但似乎无法找到如何使用 ADB 在 2 个模拟器上 react-native run-android 我的应用程序。如果可能的话,我还希望能够在测试我的应用程序时在每一个上运行 react-native log-android

有办法吗?

【问题讨论】:

【参考方案1】:

您只能在不同的端口上执行此操作。因为一个端口,一个监听器:/解决:

react-native start --port 9988
./emulator -port 9988 -avd devicename1

react-native start --port 9999
./emulator -port 9999 -avd devicename2

编辑2:

在运行模拟器之前,你可以在终端中写入,然后运行:

function emulator  cd "$(dirname "$(which emulator)")" && ./emulator "$@"; 

第一个模拟器是react

emulator -port 9988 @react
react-native run-android ( automaticaly detect emulator )

第二个模拟器是r

emulator -port 8081 @r
react-native run-android (automaticaly detect emulator )

【讨论】:

这是个好主意,但即使指定端口,我似乎也无法同时打开 2 个模拟器 @AntoineAuffray 更新我的解决方案 :) 你可以试试 :) 太棒了!现在的问题是react-native run-android 命令总是在第一个启动的模拟器上运行,知道吗?我们越来越近了! @AntoineAuffray 你可以在项目文件夹中尝试 react-native start --port=9988 啊,是的,我知道你在做什么了,太好了。感谢所有这一切,答案已接受!【参考方案2】:

要在多个模拟器上运行您的 React 应用程序,只需像往常一样启动 2 个模拟器,然后使用命令 react-native run-android

您甚至可以根据需要将任何端口号指定为react-native run-android --port 8084。您的应用程序将同时在两个模拟器上启动。 :)

Have a look here

【讨论】:

确认这对我有用......不需要过于复杂。谢谢!【参考方案3】:

@Burhan Yılmaz 接受的答案对我不起作用。这可能是由于相关软件的新更新和开发。以下步骤演示了对我有用的方法。

    启动第一个模拟器,例如 emulator -avd Nexus_S_API_28

    启动第二个模拟器,例如 emulator -avd Nexus_S_API_28_2

    以您通常使用的相同方式启动 React-Native(无需指定任何端口。) react-native run-android

这会将代码的副本发送到两个设备。但是,每个设备都在与其他设备隔离的情况下运行其副本。

环境详情:

微软视窗 10 Android SDK 29.0.2 React-Native:0.61.2

【讨论】:

【参考方案4】:

使用Genymotion,您只需启动 2 个实例并像只有一个一样启动它们(react-native run-android 安装应用程序和react-native start

【讨论】:

以上是关于React Native 在多个同时运行的 Android 模拟器上运行的主要内容,如果未能解决你的问题,请参考以下文章

是否可以同时使用具有多个预设的 Jest?

react-native:有没有同时运行iOS模拟器和Android模拟器的方法?

react native 增加react-native-camera

react native怎么开发android

React Native - 运行“npm start”和“react-native run-android”时出错

如何在 React Native 中使用 Animated API 同时隐藏 Header 和 Footer