Resolving “More Than One Device and Emulator” Error in ADB Shell

Resolving "More Than One Device and Emulator" Error in ADB Shell

30 November 2024 Stephan Petzl Leave a comment Tech-Help

When working with Android Debug Bridge (ADB) and multiple devices are connected, you might encounter the error: “error: more than one device and emulator”. This error occurs because ADB is unable to determine which device to target for the command. Here’s a comprehensive guide to resolve this issue and ensure smooth operation.

Understanding the Problem

The ADB tool helps communicate with Android devices and emulators. When multiple devices are connected, ADB requires a specific identifier to execute commands on the desired device. Without this identifier, ADB throws an error, indicating multiple devices are connected.

Steps to Resolve the Error

1. Identify Connected Devices

First, list all connected devices using the command:

adb devices

This command will provide a list of devices with their unique identifiers.

2. Use the Device Serial Number

To specify a particular device, use the -s option followed by the device’s serial number:

adb -s  shell

For example, if your device’s serial number is 7f1c864e, the command would be:

adb -s 7f1c864e shell

3. Handling Multiple Emulators

If you are dealing with multiple emulators, use the emulator’s IP and port as the identifier:

adb -s 192.168.232.2:5555 

Alternatively, if there’s only one emulator running, use:

adb -e 

4. Setting Environment Variable

Another method is to set the ANDROID_SERIAL environment variable to the desired device’s serial number. On Windows:

set ANDROID_SERIAL=7f1c864e

This makes ADB commands default to the specified device without needing the -s option.

Using Repeato for Automated Testing

For those involved in mobile app development, managing multiple devices and tests can be streamlined using tools like Repeato. Repeato is a no-code test automation tool for iOS and Android, leveraging computer vision and AI to create and run automated tests efficiently.

Repeato simplifies the process by integrating ADB commands into its workflow, allowing you to execute commands via “script steps”. This feature ensures proper timing and sequencing of commands across multiple devices, enhancing your testing efficiency.

For more detailed insights into using ADB with Repeato, explore our documentation section.

Like this article? there’s more where that came from!