React-Native run-android on specific device

Is it possible to use the run-android command for one specific device only?

For example, if I have three devices (or emulators) connected and I want to use run-android on only one of them?

Maybe something like adb install -s DEVICE_NUMBER?

Thanks in advance


To run react-native application on optional device you can specify some flags in run command. To see available add --help:

react-native run-android --help

Then you can specify your device id throught --deviceId

react-native run-android --deviceId=DEVICE_ID

To see available devices ids'

adb devices


To list AVDs:

$ANDROID_HOME/tools/emulator -list-avds

To run a specific emulator:

$ANDROID_HOME/tools/emulator -avd Pixel_API_28_AOSP

To run React Native in the currently-open emulator:

react-native run-android

To choose between multiple running emulators:

adb devices
react-native run-android --deviceId=DEVICE_ID

(Last point from this answer)


Elaborating on @alexander 's answer, you can use the following workflow:

cd android
./gradlew assembleDebug # assembleRelease for release builds
adb install -s <yourdevice> app/build/outputs/apk/yourapk.apk # You can check the identifier for your device with adb devices
adb reverse tcp:8081 tcp:8081 Will forward the phone's 8081 port to the computer's 8081, where the packager listens. If you are deploying over Wi-Fi, have a look at: https://facebook.github.io/react-native/docs/running-on-device-android.html#configure-your-app-to-connect-to-the-local-dev-server-via-wi-fi

In a different screen, run:

npm start # Will run the packager

If you really need this, you might want to wrap the first snippet into a script that you can parametrize with your phone's identifier.


npx react-native run-android --deviceId='myDeviceId'

This works for me. don't forget '' this one. it accepts string


May be we can not select which android device attached to run.

Read from official react native website:

You must have only one device connected at a time.