Error more than one device and emulator что это

I genymotion emulator and my phone connected , I want to run and debug my application over wifi , I found the instruction to do so but I get this error when I enter this code : adb tcpip 5555 I get

I genymotion emulator and my phone connected , I want to run and debug my application over wifi , I found the instruction to do so but I get this error when I enter this code :

adb tcpip 5555

I get this error :
error: more than one device/emulator

How can I make my device as default or something like that to solve this problem ?

asked May 23, 2018 at 11:55

Navid Abutorab's user avatar

Navid AbutorabNavid Abutorab

1,5875 gold badges30 silver badges56 bronze badges

2

You can send commands to a specific device, according to docs:

$ adb devices
List of devices attached
emulator-5554 device
emulator-5555 device

$ adb -s emulator-5555 do_your_command

Also, if only one is emulator or a real device you can just attach -e or -d and send the command to it:

If you have multiple devices available, but only one is an emulator, use the -e option to send commands to the emulator. Likewise, if there are multiple devices but only one hardware device attached, use the -d option to send commands to the hardware device.

answered May 23, 2018 at 12:04

Suleyman's user avatar

1

Do following thing which will help you,

You getting the message just because you are connected more than one device.

Run commands

adb devices

after the fire above command, you get the list of the device, From the list select your device id which not emulator
and fire following command

adb -s f725aa8b7ce4(deviceId) tcpip 5555

and after this fire

adb connect yourIp 5555

answered May 23, 2018 at 12:07

Dhaval Solanki's user avatar

Dhaval SolankiDhaval Solanki

4,4611 gold badge23 silver badges38 bronze badges

0

I was struggling with same issue since months, later while testing in postman I got know that «Appium inspector» is the main reason for this issue. As it creates new session Id and interrupt the running framework server.
Hence, adb kill-server adb start-server resolves the issue as it actually kill the session ID created by Appium inspector and starts new server.

answered Dec 23, 2022 at 8:13

sr freak's user avatar

Содержание

  1. error more than one device emulator
  2. 12 Answers 12
  3. Как использовать adb Shell при подключении нескольких устройств? Ошибка » ошибка: более одного устройства и эмулятора»
  4. 9 ответов
  5. Keyables
  6. Friday, June 8, 2012
  7. Solution for ADB error: more than one device and emulator
  8. Как использовать ADB Shell при подключении нескольких устройств? Сбой «ошибка: более одного устройства и эмулятора»
  9. 7 ответов
  10. Как использовать оболочку ADB при подключении нескольких устройств? Сбой «ошибка: более одного устройства и эмулятора»

error more than one device emulator

Используйте -s ПЕРЕД командой, чтобы указать устройство, например:

adb -d shell (или adb -e shell , если вы подключаетесь к эмулятору).

Эта команда поможет вам в большинстве случаев, если вам слишком ленив, чтобы ввести полный идентификатор.

-d — Направьте команду adb на только подключенное USB-устройство. Возвращает ошибку при подключении более одного USB-устройства.

-e — Направить команду adb на единственный запущенный эмулятор. Возвращает ошибку при запуске более одного эмулятора.

Другой альтернативой было бы установить переменную среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:

Затем вы можете использовать adb.exe shell без каких-либо проблем.

Я нашел этот вопрос, увидев ошибку «более одного устройства», с двумя автономными телефонами, показывающими:

Если подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:

Этот gist будет выполнять большую часть работы за то, что вы показываете меню при подключении нескольких устройств:

Чтобы избежать ввода, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь.

Создайте bash (adb +)

сделано используйте его с помощью

Пользователь @janot уже упоминал об этом выше, но мне потребовалось некоторое время, чтобы отфильтровать лучшее решение.

Существует два варианта использования:

1) 2 устройства подключены, первый — эмулятор, другой — устройство.
Решение: adb -e shell. whatever-command для эмулятора и adb -d shell. whatever-command для устройства.

2) подключено n устройств (все эмуляторы или телефоны/планшеты) через USB/ADB-WiFi:

Решение: Шаг 1) запустите adb devices Это даст вам список подключенных устройств (через USB или ADBoverWiFI).
Шаг 2) Теперь запустите adb -s shell. whatever-command от того, сколько у вас устройств.

12 Answers 12

Use the -s option BEFORE the command to specify the device, for example:

adb -d shell (or adb -e shell if you’re connecting to an emulator).

This command will help you in most of the cases, if you are too lazy to type the full ID.

-d — Direct an adb command to the only attached USB device. Returns an error when more than one USB device is attached.

-e — Direct an adb command to the only running emulator. Returns an error when more than one emulator is running.

Another alternative would be to set environment variable ANDROID_SERIAL to the relevant serial, here assuming you are using Windows:

Then you can use adb.exe shell without any issues.

I found this question after seeing the ‘more than one device’ error, with 2 offline phones showing:

If you only have one device connected, run the following commands to get rid of the offline connections:

This gist will do most of the work for you showing a menu when there are multiple devices connected:

To avoid typing you can just create an alias that included the device selection as explained here.

User @janot has already mentioned this above, but this took me some time to filter the best solution.

There are two Broad use cases:

1) 2 hardware are connected, first is emulator and other is a Device.
Solution : adb -e shell. whatever-command for emulator and adb -d shell. whatever-command for device.

2) n number of devices are connected (all emulators or Phones/Tablets) via USB/ADB-WiFi:

Solution: Step1) run adb devices THis will give you list of devices currently connected (via USB or ADBoverWiFI)
Step2) now run adb -s shell. whatever-command no matter how many devices you have.

Не следует вводить:

adb -d shell

Эта команда поможет вам в большинстве случаев, если вам слишком ленив, чтобы ввести полный идентификатор

Целевое устройство
-d Направить только команду adb на только подключенное USB-устройство.
-e Направить команду adb на единственный исполняемый экземпляр эмулятора.

Оба возвращают ошибку, если запущено более одного экземпляра каждого типа.

Другой альтернативой было бы установить переменную среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:

Тогда вы можете использовать adb.exe shell без каких-либо проблем.

Я нашел этот вопрос, увидев ошибку «более одного устройства», с двумя автономными телефонами, показывающими:

Если у вас только одно устройство подключено, выполните следующие команды, чтобы избавиться от автономных подключений:

Выполнение команд adb на всех подключенных устройствах

Создайте bash (adb +)

Сделать это с помощью

Этот принцип будет выполнять большую часть работы для вас, показывая меню при подключении нескольких устройств:

Чтобы избежать ввода, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь .

Создайте Bash (tools.sh), чтобы выбрать серию из устройств (или эмулятора):

Затем в другом варианте можно использовать adb -s (глобальный параметр -s использовать устройство с заданным серийным номером, который переопределяет $ ANDROID_SERIAL):

Я тестировал этот код на терминале MacOS, но я думаю, что он может использоваться в окнах через терминал Git Bash.

Также помните, как настроить параметры среды и пути Android SDK в файле .bash_profile :

Источник

Как использовать adb Shell при подключении нескольких устройств? Ошибка » ошибка: более одного устройства и эмулятора»

9 ответов

Не следует ли ввести:

adb -d shell (или adb -e shell Если вы подключаетесь к эмулятору).

эта команда поможет вам в большинстве случаев, если вы слишком ленивы, чтобы ввести полный код.

-d — направьте команду adb на единственное подключенное USB-устройство. Возвращает ошибку при подключении нескольких USB-устройств.

-e — прямой adb команда единственному работающему эмулятору. Возвращает ошибку при запуске нескольких эмуляторов.

Другой альтернативой было бы установить переменную среды ANDROID_SERIAL в соответствующий серийный номер, предполагая, что вы используете Windows:

затем вы можете использовать adb.exe shell без каких-либо проблем.

Я нашел этот вопрос, увидев ошибку «более одного устройства», с 2 автономными телефонами, показывающими:

Если у вас подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:

этой суть будет делать большую часть работы для вас, показывая меню, когда есть несколько подключенных устройств:

чтобы избежать ввода, вы можете просто создать псевдоним, который включал выбор устройства, как объяснено здесь.

создать bash (adb+)

готово используйте его с

для Windows, вот быстрый пример 1 строки о том, как установить файл..на нескольких устройствах

Если вы планируете включить это в пакетный файл, замените %x на %%x, как показано ниже

создать Bash (tools.sh) чтобы выбрать последовательный из устройств (или эмулятора):

тогда в другом варианте можно использовать adb -s (глобальная опция-s использовать устройство с заданным серийным номером, который переопределяет $ANDROID_SERIAL):

Я тестировал этот код на терминале MacOS, но я думаю, что его можно использовать в windows через терминал Git Bash.

также помните, настроить переменные среды и Android SDK пути на :

пользователей @janot уже упоминал об этом выше, но мне потребовалось некоторое время, чтобы отфильтровать лучшее решение.

существует два широких варианта использования:

1) подключено 2 аппаратных средства, первый-эмулятор, а другой-устройство.
решение : adb -e shell. whatever-command для эмулятора и adb -d shell. whatever-command для устройства.

2) n количество подключенных устройств (все эмуляторы или телефоны/планшеты) через USB / ADB-WiFi:

решение: Шаг 1) запустить adb devices Это даст вам список устройств, подключенных в настоящее время (через USB или ADBoverWiFI)
Шаг 2) Теперь запустите adb -s shell. whatever-command независимо от того, сколько устройств у вас есть.

Источник

Keyables

Friday, June 8, 2012

Solution for ADB error: more than one device and emulator

Have you encountered error message of «error: more than one device and emulator» while communicating Android device with adb commands? The reason behind this is the adb tool is already connected to your Android device by itself and entering the command: adb connect localhost will result in adb connecting with 2 emulator/device instances. So in further executing adb commands like sending files and installing apk applications to your Android device will be responded with this error message.

What to do after this error message shows up?
Enter: adb devices and you should see something like this below:

List of devices attached
emulator-5554 device
localhost:5555 device

Enter: adb kill-server to disconnect localhost:5555. Now you can run adb commands to your Android device without » adb connect localhost » command line.

How to overcome it?
It might not be the best answer. ADB tool behaves weirdly on my computer as it connects to my Android VM automatically and sometimes it don’t. So it is advisable to execute this command: adb devices first to see the list of devices attached with adb.

If there is nothing under «List of devices attached«, run adb connect localhost to connect.

If there is device like «emulator-5554 device» under «List of devices attached«, adb is already connected the particular device. Without the need to enter » adb connect localhost «, you can straightly operate commands to your Android device such as adb push , adb pull , adb install , and etc.

That’s how I solve this adb connection error between computer and Android-x86 Virtual Machine.

Источник

Как использовать ADB Shell при подключении нескольких устройств? Сбой «ошибка: более одного устройства и эмулятора»

7 ответов

Не следует вводить:

adb -d shell (или adb -e shell , если вы подключаетесь к эмулятору).

Эта команда поможет вам в большинстве случаев, если вам слишком ленив, чтобы ввести полный идентификатор.

-d — Направьте команду adb на только подключенное USB-устройство. Возвращает ошибку при подключении более одного USB-устройства.

-e — Направить команду adb на единственный запущенный эмулятор. Возвращает ошибку при запуске более одного эмулятора.

Другой альтернативой было бы установить переменную среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:

Затем вы можете использовать adb.exe shell без каких-либо проблем.

Я нашел этот вопрос, увидев ошибку «более одного устройства», с двумя автономными телефонами, показывающими:

Если подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:

Этот gist будет выполнять большую часть работы за то, что вы показываете меню при подключении нескольких устройств:

Чтобы избежать ввода, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь.

Создайте bash (adb +)

сделано используйте его с помощью

Создайте Bash (tools.sh), чтобы выбрать серию из устройств (или эмулятора):

Затем в другой опции можно использовать adb -s (глобальная опция — использовать устройство с заданным серийным номером, который переопределяет $ANDROID_SERIAL):

Я тестировал этот код на терминале MacOS, но я думаю, что его можно использовать в окнах через Git Bash Terminal.

Также помните, как настраивать переменные окружения и пути Android SDK в файле .bash_profile :

Источник

Как использовать оболочку ADB при подключении нескольких устройств? Сбой «ошибка: более одного устройства и эмулятора»

Используйте -s параметр ДО команды, чтобы указать устройство, например:

adb -d shell (или adb -e shell ).

Эта команда поможет вам в большинстве случаев, если вам лень вводить полный идентификатор.

-d — Направьте команду adb только на подключенное USB- устройство . Возвращает ошибку, когда подключено более одного USB-устройства.

-e — Направьте команду adb на единственный работающий эмулятор . Возвращает ошибку, когда запущено более одного эмулятора.

Другой альтернативой может быть установка переменной среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:

Тогда вы можете использовать adb.exe shell без каких-либо проблем.

Я обнаружил этот вопрос после того, как увидел ошибку «более одного устройства», когда 2 автономных телефона показывали:

Если у вас подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:

Эта суть сделает большую часть работы для вас, показывая меню, когда подключено несколько устройств:

Чтобы не печатать, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь .

Пользователь @janot уже упоминал об этом выше, но мне потребовалось некоторое время, чтобы отфильтровать лучшее решение.

Существует два варианта использования:

1) подключено 2 устройства, первый — эмулятор, а другой — устройство.
Решение : adb -e shell. whatever-command для эмулятора и adb -d shell. whatever-command для устройства.

2) подключено n устройств (все эмуляторы или телефоны / планшеты) через USB / ADB-WiFi:

Решение : Шаг 1) запустите. adb devices Это даст вам список подключенных устройств (через USB или ADBoverWiFI).
Шаг 2) теперь будет работать adb -s shell. whatever-command независимо от того, как много устройств у вас есть.

Источник

I’ve connect my device via TCPIP at 5555 port.

Result of adb devices

adb devices
List of devices attached
192.168.0.107:5555      device

Device IP: 192.168.0.107:5555

Running scrcpy gives the result:

INFO: scrcpy 1.10 <https://github.com/Genymobile/scrcpy>
D:scrcpyscrcpy-server.jar: 1 file pushed. 1.6 MB/s (22546 bytes in 0.013s)
adb.exe: error: more than one device/emulator
ERROR: "adb reverse" returned with value 1
WARN: 'adb reverse' failed, fallback to 'adb forward'
27183
INFO: Initial texture: 720x1280
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.IllegalStateException
        at android.media.MediaCodec.native_dequeueOutputBuffer(Native Method)
Press any key to continue...

I tried using scrcpy -s 192.168.0.107:5555 as the ip address was returned as the device serial when using adb devices

Which gave the same issue.

Then I used adb shell getprop ro.serialno to get my device’s serial no ; 8HUW4HV4Y9SSR4S8

Then with this new serial no I tried: scrcpy -s 8HUW4HV4Y9SSR4S8 which gave a new error:

INFO: scrcpy 1.10 <https://github.com/Genymobile/scrcpy>
adb: error: failed to get feature set: device '8HUW4HV4Y9SSR4S8' not found
ERROR: "adb push" returned with value 1
Press any key to continue...

This might be because the device is not connected via usb and the default serial returned is the Local ip address.

I’ve tried all previous solutions. Did not work.

На чтение 5 мин. Опубликовано 15.12.2019

Используйте -s ПЕРЕД командой, чтобы указать устройство, например:

adb -d shell (или adb -e shell , если вы подключаетесь к эмулятору).

Эта команда поможет вам в большинстве случаев, если вам слишком ленив, чтобы ввести полный идентификатор.

-d — Направьте команду adb на только подключенное USB-устройство. Возвращает ошибку при подключении более одного USB-устройства.

-e — Направить команду adb на единственный запущенный эмулятор. Возвращает ошибку при запуске более одного эмулятора.

Другой альтернативой было бы установить переменную среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:

Затем вы можете использовать adb.exe shell без каких-либо проблем.

Я нашел этот вопрос, увидев ошибку «более одного устройства», с двумя автономными телефонами, показывающими:

Если подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:

Этот gist будет выполнять большую часть работы за то, что вы показываете меню при подключении нескольких устройств:

Чтобы избежать ввода, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь.

Создайте bash (adb +)

сделано используйте его с помощью

Пользователь @janot уже упоминал об этом выше, но мне потребовалось некоторое время, чтобы отфильтровать лучшее решение.

Существует два варианта использования:

1) 2 устройства подключены, первый — эмулятор, другой — устройство.
Решение: adb -e shell. whatever-command для эмулятора и adb -d shell. whatever-command для устройства.

2) подключено n устройств (все эмуляторы или телефоны/планшеты) через USB/ADB-WiFi:

Решение: Шаг 1) запустите adb devices Это даст вам список подключенных устройств (через USB или ADBoverWiFI).
Шаг 2) Теперь запустите adb -s shell. whatever-command от того, сколько у вас устройств.

12 Answers 12

Use the -s option BEFORE the command to specify the device, for example:

adb -d shell (or adb -e shell if you’re connecting to an emulator).

This command will help you in most of the cases, if you are too lazy to type the full ID.

-d — Direct an adb command to the only attached USB device. Returns an error when more than one USB device is attached.

-e — Direct an adb command to the only running emulator. Returns an error when more than one emulator is running.

Another alternative would be to set environment variable ANDROID_SERIAL to the relevant serial, here assuming you are using Windows:

Then you can use adb.exe shell without any issues.

I found this question after seeing the ‘more than one device’ error, with 2 offline phones showing:

If you only have one device connected, run the following commands to get rid of the offline connections:

This gist will do most of the work for you showing a menu when there are multiple devices connected:

To avoid typing you can just create an alias that included the device selection as explained here.

User @janot has already mentioned this above, but this took me some time to filter the best solution.

There are two Broad use cases:

1) 2 hardware are connected, first is emulator and other is a Device.
Solution : adb -e shell. whatever-command for emulator and adb -d shell. whatever-command for device.

2) n number of devices are connected (all emulators or Phones/Tablets) via USB/ADB-WiFi:

Solution: Step1) run adb devices THis will give you list of devices currently connected (via USB or ADBoverWiFI)
Step2) now run adb -s shell. whatever-command no matter how many devices you have.

Не следует вводить:

adb -d shell

Эта команда поможет вам в большинстве случаев, если вам слишком ленив, чтобы ввести полный идентификатор

Целевое устройство
-d Направить только команду adb на только подключенное USB-устройство.
-e Направить команду adb на единственный исполняемый экземпляр эмулятора.

Оба возвращают ошибку, если запущено более одного экземпляра каждого типа.

Другой альтернативой было бы установить переменную среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:

Тогда вы можете использовать adb.exe shell без каких-либо проблем.

Я нашел этот вопрос, увидев ошибку «более одного устройства», с двумя автономными телефонами, показывающими:

Если у вас только одно устройство подключено, выполните следующие команды, чтобы избавиться от автономных подключений:

Выполнение команд adb на всех подключенных устройствах

Создайте bash (adb +)

Сделать это с помощью

Этот принцип будет выполнять большую часть работы для вас, показывая меню при подключении нескольких устройств:

Чтобы избежать ввода, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь .

Создайте Bash (tools.sh), чтобы выбрать серию из устройств (или эмулятора):

Затем в другом варианте можно использовать adb -s (глобальный параметр -s использовать устройство с заданным серийным номером, который переопределяет $ ANDROID_SERIAL):

Я тестировал этот код на терминале MacOS, но я думаю, что он может использоваться в окнах через терминал Git Bash.

Также помните, как настроить параметры среды и пути Android SDK в файле .bash_profile :

$ adb --help

-s SERIAL  use device with given serial (overrides $ANDROID_SERIAL)

$ adb devices
List of devices attached 
emulator-5554 device
7f1c864e  device

$ adb shell -s 7f1c864e
error: more than one device and emulator

?

9 ответов



adb -d shell (или adb -e shell Если вы подключаетесь к эмулятору).

эта команда поможет вам в большинстве случаев, если вы слишком ленивы, чтобы ввести полный код.

от http://developer.android.com/tools/help/adb.html#commandsummary:

-d — направьте команду adb на единственное подключенное USB-устройство. Возвращает ошибку при подключении нескольких USB-устройств.

-e — прямой adb команда единственному работающему эмулятору. Возвращает ошибку при запуске нескольких эмуляторов.

223

автор: Sazzad Hissain Khan


Другой альтернативой было бы установить переменную среды ANDROID_SERIAL в соответствующий серийный номер, предполагая, что вы используете Windows:

set ANDROID_SERIAL="7f1c864e"
echo %ANDROID_SERIAL%
"7f1c864e"

затем вы можете использовать adb.exe shell без каких-либо проблем.


Я нашел этот вопрос, увидев ошибку «более одного устройства», с 2 автономными телефонами, показывающими:

C:Program Files (x86)Androidandroid-sdkandroid-tools>adb devices
List of devices attached
SH436WM01785    offline
SH436WM01785    offline
SH436WM01785    sideload

Если у вас подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:

adb kill-server
adb devices

этой суть будет делать большую часть работы для вас, показывая меню, когда есть несколько подключенных устройств:

$ adb $(android-select-device) shell
1) 02783201431feeee device 3) emulator-5554
2) 3832380FA5F30000 device 4) emulator-5556
Select the device to use, <Q> to quit:

чтобы избежать ввода, вы можете просто создать псевдоним, который включал выбор устройства, как объяснено здесь.

5

автор: Diego Torres Milano


выполнение команд adb на всех подключенных устройствах

создать bash (adb+)

adb devices | while read line
do
if [ ! "$line" = "" ] && [ `echo $line | awk '{print }'` = "device" ]
then
    device=`echo $line | awk '{print }'`
    echo "$device $@ ..."
    adb -s $device $@
fi

готово
используйте его с

adb + / / + команда


для Windows, вот быстрый пример 1 строки о том, как установить файл..на нескольких устройствах

FOR /F "skip=1"  %x IN ('adb devices') DO start adb -s %x install -r myandroidapp.apk

Если вы планируете включить это в пакетный файл, замените %x на %%x, как показано ниже

FOR /F "skip=1"  %%x IN ('adb devices') DO start adb -s %%x install -r myandroidapp.apk

создать Bash (tools.sh) чтобы выбрать последовательный из устройств (или эмулятора):

clear;
echo "====================================================================================================";
echo " ADB DEVICES";
echo "====================================================================================================";
echo "";

adb_devices=( $(adb devices | grep -v devices | grep device | cut -f 1)#$(adb devices | grep -v devices | grep device | cut -f 2) );

if [ $((${#adb_devices[@]})) -eq "1" ] && [ "${adb_devices[0]}" == "#" ]
then
    echo "No device found";
    echo ""; 
    echo "====================================================================================================";
    device=""
    // Call Main Menu function fxMenu;
else
    read -p "$(
        f=0
        for dev in "${adb_devices[@]}"; do
            nm="$(echo ${dev} | cut -f1 -d#)";
            tp="$(echo ${dev} | cut -f2 -d#)";
            echo " $((++f)). ${nm} [${tp}]";
        done

        echo "";
        echo " 0. Quit"
        echo "";

        echo "====================================================================================================";
        echo "";
        echo ' Please select a device: '
    )" selection

    error="You think it's over just because I am dead. It's not over. The games have just begun.";
    // Call Validation Numbers fxValidationNumberMenu ${#adb_devices[@]} ${selection} "${error}" 
    case "${selection}" in
        0)
            // Call Main Menu function fxMenu;
        *)  
            device="$(echo ${adb_devices[$((selection-1))]} | cut -f1 -d#)";
            // Call Main Menu function fxMenu;
    esac
fi

тогда в другом варианте можно использовать adb -s (глобальная опция-s использовать устройство с заданным серийным номером, который переопределяет $ANDROID_SERIAL):

adb -s ${device} <command>

Я тестировал этот код на терминале MacOS, но я думаю, что его можно использовать в windows через терминал Git Bash.

также помните, настроить переменные среды и Android SDK пути на :

export ANDROID_HOME="/usr/local/opt/android-sdk/"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
export PATH="$ANDROID_HOME/tools:$PATH"

пользователей @janot уже упоминал об этом выше, но мне потребовалось некоторое время, чтобы отфильтровать лучшее решение.

существует два широких варианта использования:

1) подключено 2 аппаратных средства, первый-эмулятор, а другой-устройство.
решение : adb -e shell....whatever-command для эмулятора и adb -d shell....whatever-command для устройства.

2) n количество подключенных устройств (все эмуляторы или телефоны/планшеты) через USB / ADB-WiFi:

решение:
Шаг 1) запустить adb devices Это даст вам список устройств, подключенных в настоящее время (через USB или ADBoverWiFI)
Шаг 2) Теперь запустите adb -s <device-id/IP-address> shell....whatever-command
независимо от того, сколько устройств у вас есть.

пример
чтобы очистить данные приложения на устройстве, подключенном к wifi ADB, я бы выполнил:
adb -s 172.16.34.89:5555 shell pm clear com.package-id

чтобы очистить данные приложения, подключенные к моему usb-устройству, я бы выполнил:
adb -s 5210d21be2a5643d shell pm clear com.package-id


Have you encountered error message of «error: more than one device and emulator» while communicating Android device with adb commands? The reason behind this is the adb tool is already connected to your Android device by itself and entering the command: adb connect localhost will result in adb connecting with 2 emulator/device instances. So in further executing adb commands like sending files and installing apk applications to your Android device will be responded with this error message.

What to do after this error message shows up?
Enter: adb devices and you should see something like this below:

List of devices attached
emulator-5554 device
localhost:5555 device

Enter: adb kill-server to disconnect localhost:5555. Now you can run adb commands to your Android device without «adb connect localhost» command line.

How to overcome it?
It might not be the best answer. ADB tool behaves weirdly on my computer as it connects to my Android VM automatically and sometimes it don’t. So it is advisable to execute this command: adb devices first to see the list of devices attached with adb.

If there is nothing under «List of devices attached«, run adb connect localhost to connect.

If there is device like «emulator-5554 device» under «List of devices attached«, adb is already connected the particular device. Without the need to enter «adb connect localhost«, you can straightly operate commands to your Android device such as adb push, adb pull, adb install, and etc.

That’s how I solve this adb connection error between computer and Android-x86 Virtual Machine.

When I connected to the phone to charge, I started the emulator debugging and executed ADB instruction, and reported an error.
C:Usersgaojs> adb shell
error: more than one device and emulator
C:Usersgaojs> adb install e:good.apk
error: more than one device and emulator
In this case, first check to see if there are actually multiple devices or simulators.
C:Usersgaojs> Adb devices
List of devices attached
emulator-5554 device
4dfadcb86b00cf05 device
you can find out that there are multiple devices, so you need to specify the device serial number for the adb command.
C:Usersgaojs> Adb -s emulator-5554 shell
as shown above, add the -s parameter to the command! If there is actually only one device or simulator, and we have offline status;

, which means that ADB has a BUG, needs to be handled in the following way:

C:Usersgaojs>
adb kill-server

C:Usersgaojs>
Taskkill /f /im adb. Exe
the first command is a service to kill adb and the second command is a process to kill adb!

if the first command doesn’t work, consider using the second command to try again!

Read More:

Keyables

Friday, June 8, 2012

Solution for ADB error: more than one device and emulator

Have you encountered error message of «error: more than one device and emulator» while communicating Android device with adb commands? The reason behind this is the adb tool is already connected to your Android device by itself and entering the command: adb connect localhost will result in adb connecting with 2 emulator/device instances. So in further executing adb commands like sending files and installing apk applications to your Android device will be responded with this error message.

What to do after this error message shows up?
Enter: adb devices and you should see something like this below:

List of devices attached
emulator-5554 device
localhost:5555 device

Enter: adb kill-server to disconnect localhost:5555. Now you can run adb commands to your Android device without » adb connect localhost » command line.

How to overcome it?
It might not be the best answer. ADB tool behaves weirdly on my computer as it connects to my Android VM automatically and sometimes it don’t. So it is advisable to execute this command: adb devices first to see the list of devices attached with adb.

If there is nothing under «List of devices attached«, run adb connect localhost to connect.

If there is device like «emulator-5554 device» under «List of devices attached«, adb is already connected the particular device. Without the need to enter » adb connect localhost «, you can straightly operate commands to your Android device such as adb push , adb pull , adb install , and etc.

That’s how I solve this adb connection error between computer and Android-x86 Virtual Machine.

Источник

Как использовать оболочку ADB при подключении нескольких устройств? Сбой «ошибка: более одного устройства и эмулятора»

Используйте -s параметр ДО команды, чтобы указать устройство, например:

adb -d shell (или adb -e shell ).

Эта команда поможет вам в большинстве случаев, если вам лень вводить полный идентификатор.

-d — Направьте команду adb только на подключенное USB- устройство . Возвращает ошибку, когда подключено более одного USB-устройства.

-e — Направьте команду adb на единственный работающий эмулятор . Возвращает ошибку, когда запущено более одного эмулятора.

Другой альтернативой может быть установка переменной среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:

Тогда вы можете использовать adb.exe shell без каких-либо проблем.

Я обнаружил этот вопрос после того, как увидел ошибку «более одного устройства», когда 2 автономных телефона показывали:

Если у вас подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:

Эта суть сделает большую часть работы для вас, показывая меню, когда подключено несколько устройств:

Чтобы не печатать, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь .

Пользователь @janot уже упоминал об этом выше, но мне потребовалось некоторое время, чтобы отфильтровать лучшее решение.

Существует два варианта использования:

1) подключено 2 устройства, первый — эмулятор, а другой — устройство.
Решение : adb -e shell. whatever-command для эмулятора и adb -d shell. whatever-command для устройства.

2) подключено n устройств (все эмуляторы или телефоны / планшеты) через USB / ADB-WiFi:

Решение : Шаг 1) запустите. adb devices Это даст вам список подключенных устройств (через USB или ADBoverWiFI).
Шаг 2) теперь будет работать adb -s shell. whatever-command независимо от того, как много устройств у вас есть.

Источник

Как использовать adb Shell при подключении нескольких устройств? Ошибка » ошибка: более одного устройства и эмулятора»

9 ответов

Не следует ли ввести:

adb -d shell (или adb -e shell Если вы подключаетесь к эмулятору).

эта команда поможет вам в большинстве случаев, если вы слишком ленивы, чтобы ввести полный код.

-d — направьте команду adb на единственное подключенное USB-устройство. Возвращает ошибку при подключении нескольких USB-устройств.

-e — прямой adb команда единственному работающему эмулятору. Возвращает ошибку при запуске нескольких эмуляторов.

Другой альтернативой было бы установить переменную среды ANDROID_SERIAL в соответствующий серийный номер, предполагая, что вы используете Windows:

затем вы можете использовать adb.exe shell без каких-либо проблем.

Я нашел этот вопрос, увидев ошибку «более одного устройства», с 2 автономными телефонами, показывающими:

Если у вас подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:

этой суть будет делать большую часть работы для вас, показывая меню, когда есть несколько подключенных устройств:

чтобы избежать ввода, вы можете просто создать псевдоним, который включал выбор устройства, как объяснено здесь.

создать bash (adb+)

готово используйте его с

для Windows, вот быстрый пример 1 строки о том, как установить файл..на нескольких устройствах

Если вы планируете включить это в пакетный файл, замените %x на %%x, как показано ниже

создать Bash (tools.sh) чтобы выбрать последовательный из устройств (или эмулятора):

тогда в другом варианте можно использовать adb -s (глобальная опция-s использовать устройство с заданным серийным номером, который переопределяет $ANDROID_SERIAL):

Я тестировал этот код на терминале MacOS, но я думаю, что его можно использовать в windows через терминал Git Bash.

также помните, настроить переменные среды и Android SDK пути на :

пользователей @janot уже упоминал об этом выше, но мне потребовалось некоторое время, чтобы отфильтровать лучшее решение.

существует два широких варианта использования:

1) подключено 2 аппаратных средства, первый-эмулятор, а другой-устройство.
решение : adb -e shell. whatever-command для эмулятора и adb -d shell. whatever-command для устройства.

2) n количество подключенных устройств (все эмуляторы или телефоны/планшеты) через USB / ADB-WiFi:

решение: Шаг 1) запустить adb devices Это даст вам список устройств, подключенных в настоящее время (через USB или ADBoverWiFI)
Шаг 2) Теперь запустите adb -s shell. whatever-command независимо от того, сколько устройств у вас есть.

Источник

[Q] error: more than one device and emulator. [SOLVED]

Breadcrumb

kassim3

Member

So i’m trying to root my asus transformer by following this guide http://forum.xda-developers.com/showthread.php?t=1106587

i got to the part where it says to type the following command

I ran adb devices to see what devices it recognises and it says

gee one

Senior Member

kassim3

Member

gee one

Senior Member

Sorry, not sure. maybe your phone is rooted instead :0

Try starting over again without your phone plugged in

mrevankyle

Senior Member

kassim3

Member

Sorry, not sure. maybe your phone is rooted instead :0

Try starting over again without your phone plugged in

LOLOLOL you were right my phone was plugged in HOWEVER it still didnt work. the progress bar did show up again but wasnt rooted

kassim3

Member

Oh yeh going to sleep did the trick. I woke up and removed everything by doing the commands

and also followed the this video tutorial

aand it worked it!

Thanks gee one and mrevankyle

Calbha

Senior Member

Oh yeh going to sleep did the trick. I woke up and removed everything by doing the commands

and also followed the this video tutorial

aand it worked it!

Thanks gee one and mrevankyle

Jack6911

Member

I had the same issue when I’ve tried to room my XT1032 (Moto G). I fail to install with the SuperBoot way! So I’ve decide to install CWM and a modified recovery.

On my first try, I receive this message:

I’ve 2 device. My XT1033 and an AndroidEmulator.

is not working for me.

I’ve use the command:

So, I’ve finish my installation with

and I’ve run a sideload installation with:

Try this and share me your opinion!

———- Post added at 11:11 PM ———- Previous post was at 11:10 PM ———-

I had the same issue when I’ve tried to room my XT1032 (Moto G). I fail to install with the SuperBoot way! So I’ve decide to install CWM and a modified recovery.

On my first try, I receive this message:

I’ve 2 device. My XT1033 and an AndroidEmulator.

Источник

Как использовать оболочку ADB при подключении нескольких устройств? Ошибка с «ошибкой: более одного устройства и эмулятора»

Не следует вводить:

adb -d shell

Эта команда поможет вам в большинстве случаев, если вам слишком ленив, чтобы ввести полный идентификатор

Целевое устройство
-d Направить только команду adb на только подключенное USB-устройство.
-e Направить команду adb на единственный исполняемый экземпляр эмулятора.

Оба возвращают ошибку, если запущено более одного экземпляра каждого типа.

Другой альтернативой было бы установить переменную среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:

Тогда вы можете использовать adb.exe shell без каких-либо проблем.

Я нашел этот вопрос, увидев ошибку «более одного устройства», с двумя автономными телефонами, показывающими:

Если у вас только одно устройство подключено, выполните следующие команды, чтобы избавиться от автономных подключений:

Выполнение команд adb на всех подключенных устройствах

Создайте bash (adb +)

Сделать это с помощью

Этот принцип будет выполнять большую часть работы для вас, показывая меню при подключении нескольких устройств:

Чтобы избежать ввода, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь .

Создайте Bash (tools.sh), чтобы выбрать серию из устройств (или эмулятора):

Затем в другом варианте можно использовать adb -s (глобальный параметр -s использовать устройство с заданным серийным номером, который переопределяет $ ANDROID_SERIAL):

Я тестировал этот код на терминале MacOS, но я думаю, что он может использоваться в окнах через терминал Git Bash.

Также помните, как настроить параметры среды и пути Android SDK в файле .bash_profile :

Источник

7 ответов

janot
01 фев. 2013, в 23:00

Поделиться

adb -d shell (или adb -e shell, если вы подключаетесь к эмулятору).

Эта команда поможет вам в большинстве случаев, если вам слишком ленив, чтобы ввести полный идентификатор.

Из http://developer.android.com/tools/help/adb.html#commandsummary:

-d — Направьте команду adb на только подключенное USB-устройство. Возвращает ошибку при подключении более одного USB-устройства.

-e — Направить команду adb на единственный запущенный эмулятор. Возвращает ошибку при запуске более одного эмулятора.

Sazzad Hissain Khan
23 нояб. 2013, в 15:20

Поделиться

Другой альтернативой было бы установить переменную среды ANDROID_SERIAL для соответствующего серийного номера, при условии, что вы используете Windows:

set ANDROID_SERIAL="7f1c864e"
echo %ANDROID_SERIAL%
"7f1c864e"

Затем вы можете использовать adb.exe shell без каких-либо проблем.

monotux
28 фев. 2014, в 09:34

Поделиться

Я нашел этот вопрос, увидев ошибку «более одного устройства», с двумя автономными телефонами, показывающими:

C:Program Files (x86)Androidandroid-sdkandroid-tools>adb devices
List of devices attached
SH436WM01785    offline
SH436WM01785    offline
SH436WM01785    sideload

Если подключено только одно устройство, выполните следующие команды, чтобы избавиться от автономных подключений:

adb kill-server
adb devices

Danny Beckett
31 дек. 2014, в 03:11

Поделиться

Этот gist будет выполнять большую часть работы за то, что вы показываете меню при подключении нескольких устройств:

$ adb $(android-select-device) shell
1) 02783201431feeee device 3) emulator-5554
2) 3832380FA5F30000 device 4) emulator-5556
Select the device to use, <Q> to quit:

Чтобы избежать ввода, вы можете просто создать псевдоним, включающий выбор устройства, как описано здесь.

Diego Torres Milano
03 июнь 2016, в 21:02

Поделиться

Создайте Bash (tools.sh), чтобы выбрать серию из устройств (или эмулятора):

clear;
echo "====================================================================================================";
echo " ADB DEVICES";
echo "====================================================================================================";
echo "";

adb_devices=( $(adb devices | grep -v devices | grep device | cut -f 1)#$(adb devices | grep -v devices | grep device | cut -f 2) );

if [ $((${#adb_devices[@]})) -eq "1" ] && [ "${adb_devices[0]}" == "#" ]
then
    echo "No device found";
    echo ""; 
    echo "====================================================================================================";
    device=""
    fxMenu;
else
    read -p "$(
        f=0
        for dev in "${adb_devices[@]}"; do
            nm="$(echo ${dev} | cut -f1 -d#)";
            tp="$(echo ${dev} | cut -f2 -d#)";
            echo " $((++f)). ${nm} [${tp}]";
        done

        echo "";
        echo " 0. Quit"
        echo "";

        echo "====================================================================================================";
        echo "";
        echo ' Please select a device: '
    )" selection

    error="You think it over just because I am dead. It not over. The games have just begun.";
    fxValidationNumberMenu ${#adb_devices[@]} ${selection} "${error}" 
    case "${selection}" in
        0)
            fxMenu;;
        *)  
            device="$(echo ${adb_devices[$((selection-1))]} | cut -f1 -d#)";
            fxMenu;;
    esac
fi

Затем в другой опции можно использовать adb -s (глобальная опция — использовать устройство с заданным серийным номером, который переопределяет $ANDROID_SERIAL):

adb -s ${device} <command>

Я тестировал этот код на терминале MacOS, но я думаю, что его можно использовать в окнах через Git Bash Terminal.

Также помните, как настраивать переменные окружения и пути Android SDK в файле .bash_profile:

export ANDROID_HOME="/usr/local/opt/android-sdk/"
export PATH="$ANDROID_HOME/platform-tools:$PATH"
export PATH="$ANDROID_HOME/tools:$PATH"

Equiman
30 март 2017, в 06:14

Поделиться

Ещё вопросы

  • 1Как я могу получить текст из контекстного меню?
  • 1Pytest: приспособление с областью модуля в тестовом файле работает, но в conftest.py выдает ошибку
  • 0Почему JQuery создает избыточные элементы <p> </ p> с этой строкой html?
  • 1Как я могу удалить n t из строки в списке <string>?
  • 0Ширина столбца в таблице HTML
  • 0Рут в Yii2 не работает
  • 0Fancybox не работает с определенным селектором
  • 0Сетка углового интерфейса: уведомить пользователя, что сортировка может занять некоторое время
  • 1Как resultSet хранит значения
  • 0Загрузите несколько изображений с помощью PHP и поместите их в базу данных MYSQL
  • 1Получить объект из метода (работоспособного) таймера
  • 1Как получить количество всех вариантов (скажем, из опроса) в виде столбцов
  • 0Вернуть все строки из таблицы и добавить дополнительный столбец, чтобы указать включение сводной таблицы
  • 1Преобразование между SQL Real и .NET double
  • 0используя функцию localtime для получения локального времени пользователя в php
  • 0Проверка маски номера версии в jquery или GWT
  • 0Связывание Docker с локальной базой данных MySQL
  • 1ПРОИЗВОДИТЕЛЬНОСТЬ — зацикливание на ячейках — подавление предупреждения «число сохранено в виде текста» в Excel VSTO с помощью C #
  • 1Почему Integer.parseInt («53.6») не работает?
  • 1Тестирование обработки обещаний в JavaScript не работает
  • 0Как вы передаете массив через URL веб-сервера PHP?
  • 1Проверка данных формы с помощью Javascript
  • 1Исключение NullPointer WebDriver TestNG
  • 1Получить изображения из медиа библиотеки
  • 1получение нескольких строк с parse.com в динамические текстовые блоки в приложении Windows Phone 8
  • 0В многокнопочной форме, как нажать кнопку, соответствующую активному текстовому полю, при нажатии клавиши Enter.
  • 1Почему мой враг атакует после его смерти? (Javascript)
  • 1эмулятор Android ==> изменить размер кучи?
  • 1Доступ к синглтону WCF в IIS
  • 0Предварительный просмотр галереи изображений не отображается правильно в Chrome и Safari
  • 1Добавление данных файла WAV в Excel
  • 0Вставка столбца в броненосец дает разные результаты от вставки в R до перехода в RcppArmadillo, что я сделал не так?
  • 1DOMDocument извлекает теги из встроенных скриптов PHP
  • 0Какой хороший и простой способ обойти ng-include без загрузки скриптов? [Дубликат]
  • 0Последующие обещания JQuery
  • 0Как получить столбец (NEW. {{Col_name}}), если его имя хранится в переменной — MySQL
  • 0Фильтры LESS и IE9: нет для совместимости с SVG-градиентом?
  • 1Может ли LINQ вернуть вложенный набор объектов?
  • 0AngularJS data-of-hide ставит пробелы
  • 1Как контролировать межстрочный интервал между текстами GTK
  • 1Что такое хороший способ создать переменную в JsRender?
  • 0AngularJS JSON проблема значения foreach
  • 1Разорвать _.each цикл
  • 0Утечки памяти, когда мой код компилируется GCC
  • 0Как заполнить Div на основе JavaScript <script>?
  • 1Воспроизведение сырого PCM с помощью NAudio (выводит шум, но в Audacity открывается нормально)
  • 1Ищите Wildcard (‘<‘, ‘>’), посчитайте его и получите позицию в java
  • 0Как добавить SqlDependency для AngularJ с помощью Entity Framework
  • 0Уведомлять при завершении вызова JQuery Ajax
  • 1как убрать концевые нули, показанные в описании моих данных в блокноте jupyter

Понравилась статья? Поделить с друзьями:
  • Error more than 1 module selected
  • Error more than 1 gb of free space is needed to install everything
  • Error moodle generalexceptionmessage
  • Error mono exception occurred
  • Error monitor world of tanks как исправить windows 10