adb error: more than one device/emulator: как исправить
Как исправить «adb: error: more than one device/emulator»: выбрать устройство через -s, -d, -e или ANDROID_SERIAL и убрать старые Wi-Fi-подключения и забытые эмуляторы.
Вы запускаете команду adb и получаете:
adb: error: more than one device/emulatoradb видит два устройства или больше и не знает, какое вы имеете в виду. Решение простое: укажите устройство явно или уберите лишние.
Посмотрите, что подключено
adb devices -lПример:
List of devices attached
R58M123ABC device usb:1-1 product:a54xnseea model:SM_A546B
emulator-5554 device product:sdk_gphone64 model:sdk_gphone64_arm64
192.168.1.20:5555 device product:redwood model:2211133GЗдесь подключены телефон по USB, эмулятор и телефон по Wi-Fi. «Лишним» может оказаться любой из них.
Выберите устройство для одной команды
| Флаг | Значение | Пример |
|---|---|---|
-s <serial> | Конкретное устройство по серийному номеру или адресу | adb -s R58M123ABC shell |
-d | Единственное устройство, подключённое по USB | adb -d install app.apk |
-e | Единственный эмулятор | adb -e logcat |
-t <id> | Устройство с этим transport id (из adb devices -l) | adb -t 3 shell |
Для устройства по Wi-Fi серийным номером служит его адрес: adb -s 192.168.1.20:5555 shell.
Выберите устройство для всего терминала
Задайте ANDROID_SERIAL, и все команды adb в этом терминале пойдут на это устройство:
export ANDROID_SERIAL=R58M123ABC # macOS / Linux
set ANDROID_SERIAL=R58M123ABC # Windows Command Prompt
$env:ANDROID_SERIAL = "R58M123ABC" # Windows PowerShellУберите лишние устройства
- Старое Wi-Fi-подключение:
adb disconnect 192.168.1.20:5555илиadb disconnect, чтобы отключить все. - Забытый эмулятор: закройте его в Android Studio или выполните
adb -s emulator-5554 emu kill. - Призрачная запись offline: её убирает
adb kill-server. - Один и тот же телефон дважды (по USB и по Wi-Fi): отключите одно из подключений.
Скрипты для многих устройств
Чтобы выполнить одну и ту же команду на всех подключённых устройствах, переберите серийные номера в цикле:
for s in $(adb devices | awk 'NR>1 && $2=="device" {print $1}'); do
adb -s "$s" shell getprop ro.product.model
doneО работе с большим парком телефонов читайте в статье как собрать лабораторию Android-устройств.
Несколько устройств в ADBKit
В ADBKit этой проблемы нет, потому что у каждого устройства своя вкладка. Подключите до шести телефонов по USB или Wi-Fi, переключайтесь между ними как между вкладками браузера, и каждое действие уходит на то устройство, которое у вас перед глазами. Видео передаёт только видимая вкладка, поэтому остальные почти не нагружают систему. Откройте ADBKit и нажмите + Add device, чтобы подключить следующее устройство.