adb error: more than one device/emulator: como resolver
Resolva "adb: error: more than one device/emulator" escolhendo um dispositivo com -s, -d, -e ou ANDROID_SERIAL e removendo conexões Wi-Fi antigas e emuladores esquecidos.
Você roda um comando adb e recebe:
adb: error: more than one device/emulatorO adb enxerga dois ou mais dispositivos e não sabe de qual você está falando. A solução é dizer qual é o dispositivo, ou remover os que você não quer.
Veja o que está conectado
adb devices -lExemplo:
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:2211133GAqui há um celular pelo USB, um emulador e um celular pelo Wi-Fi. Qualquer um deles pode ser o que está sobrando.
Escolha um dispositivo para um comando
| Opção | Significado | Exemplo |
|---|---|---|
-s <serial> | Um dispositivo específico pelo serial ou endereço | adb -s R58M123ABC shell |
-d | O único dispositivo conectado por USB | adb -d install app.apk |
-e | O único emulador | adb -e logcat |
-t <id> | O dispositivo com este transport id (do adb devices -l) | adb -t 3 shell |
Para um dispositivo no Wi-Fi, o serial é o endereço: adb -s 192.168.1.20:5555 shell.
Escolha um dispositivo para o terminal inteiro
Defina ANDROID_SERIAL e todos os comandos adb daquele terminal vão para esse dispositivo:
export ANDROID_SERIAL=R58M123ABC # macOS / Linux
set ANDROID_SERIAL=R58M123ABC # Windows Command Prompt
$env:ANDROID_SERIAL = "R58M123ABC" # Windows PowerShellRemova os dispositivos que sobram
- Uma conexão Wi-Fi antiga:
adb disconnect 192.168.1.20:5555, ouadb disconnectpara derrubar todas. - Um emulador esquecido: feche no Android Studio, ou rode
adb -s emulator-5554 emu kill. - Uma entrada fantasma offline:
adb kill-serverlimpa. - O mesmo celular duas vezes (uma pelo USB, outra pelo Wi-Fi): desconecte uma delas.
Scripts com muitos dispositivos
Para rodar o mesmo comando em todos os dispositivos conectados, faça um loop pelos seriais:
for s in $(adb devices | awk 'NR>1 && $2=="device" {print $1}'); do
adb -s "$s" shell getprop ro.product.model
doneMais sobre como trabalhar com muitos celulares em como montar um laboratório de dispositivos Android.
Vários dispositivos no ADBKit
O ADBKit nunca tem esse problema, porque cada dispositivo ganha a própria aba. Conecte até seis celulares por USB ou Wi-Fi, alterne entre eles como abas do navegador, e cada ação vai para o dispositivo que você está vendo. Só a aba visível transmite vídeo, então as outras ficam leves. Abra o ADBKit e use + Add device para conectar o próximo.