选择哪个Android设备(模拟器或手机)将作出反应 - 本机运行android运行

时间:2017-02-22 19:18:08

标签: android react-native react-native-android

我正在开发一个react-native run-android应用程序,每次我想更新实际手机或模拟器的更改时,我执行react-native run-android --device=XXXXXX (有时我在模拟器中使用重新加载功能)。

我的问题是,是否有可能指定命令将在哪个设备/模拟器中运行,因为当我连接它时它将运行并在最近运行/插入时更新应用程序。

所以我会想象这样的事情:

var elems = document.getElementsByClassName('ProdSkus');
var arr = [];
Array.from(elems).forEach(v => arr.push(v.innerHTML));

console.log(arr);

我一直在做一些研究,到目前为止还没有找到答案,所以我希望有人对它有所了解。谢谢!

2 个答案:

答案 0 :(得分:1)

如果你浏览文档,那么你会发现还有两个命令可用于启动服务器,而且到目前为止还没有这样的react-native run-android --- // deviceID命令可用,但你可以自定义在node_modules中对本机代码做出反应,为自己制作该命令。

这两个命令是:

1)react-native start
2)npm start

干杯:)

答案 1 :(得分:1)

TL; DR:adb devices,然后是npx react-native run-android --deviceId [DEVICE_ID]

首先,插入设备,或使用Android Emulator CLI启动仿真器。

  1. emulator -list-avds将列出您的avds(Android虚拟设备),例如Pixel_2_API_29
  2. emulator -avd Pixel_2_API_29emulator @Pixel_2_API_29将启动指定的设备。
  3. emulator -help了解更多信息。
  4. 然后,打开一个新的终端/选项卡,运行npx react-native run-android它将在所有Android设备(包括物理设备和AVD)上启动您的应用。 如果您只想指定1个设备(为什么不在所有设备上都运行!):
  5. adb devices,以获取设备ID的列表,例如1cfe4i231414523
  6. npx react-native run-android --deviceId 1cfe4i231414523

PS:React本机入门指南指定您应卸载react-native,而应通过npx使用该软件包。卸载npm rm -g react-native。现在,每次要运行本机时,请使用npx react-native [command]。 npx的作用是在本地node_modules中查找并从本地运行它,而不是可能已经过时的全局react-native包。

我想补充一下,对于iOS,不需要这些步骤。只需运行npx react-native run-ios,iOS模拟器就会随您的应用一起启动。