选择哪个 android 设备(模拟器或手机)将 react-native run-android run

vab*_*ada 3 android react-native react-native-android

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

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

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

react-native run-android --device=XXXXXX
Run Code Online (Sandbox Code Playgroud)

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

Ben*_*rth 8

如果您只有一台设备,无论是插入还是作为模拟器运行:

npx react-native run-android // or if you have a npm script, 'npm run android'
Run Code Online (Sandbox Code Playgroud)

如果您有多个设备(插入或作为模拟器运行),以下内容很有用。

确保设备已插入,并使用 获取其设备 ID 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 native 入门指南指定你应该卸载 react-native,而是通过 npx 使用包。要卸载npm rm -g react-native. 现在,每次您想运行 react-native 时,请使用npx react-native [command]. npx 所做的是它在本地查找node_modules并从那里运行它,而不是一个可能过时的全局react-native包。