adb error: more than one device/emulator: cómo solucionarlo
Soluciona "adb: error: more than one device/emulator" eligiendo un dispositivo con -s, -d, -e o ANDROID_SERIAL, y quitando conexiones Wi-Fi viejas y emuladores olvidados.
Ejecutas un comando adb y obtienes:
adb: error: more than one device/emulatoradb ve dos o más dispositivos y no sabe a cuál te refieres. La solución es nombrar el dispositivo, o quitar los que no quieres.
Mira qué está conectado
adb devices -lEjemplo:
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:2211133GAquí hay un celular por USB, un emulador y un celular por Wi-Fi. Cualquiera de ellos puede ser el que sobra.
Elige un dispositivo para un solo comando
| Opción | Significado | Ejemplo |
|---|---|---|
-s <serial> | Un dispositivo concreto por su serial o dirección | adb -s R58M123ABC shell |
-d | El único dispositivo conectado por USB | adb -d install app.apk |
-e | El único emulador | adb -e logcat |
-t <id> | El dispositivo con este transport id (de adb devices -l) | adb -t 3 shell |
Para un dispositivo por Wi-Fi, el serial es su dirección: adb -s 192.168.1.20:5555 shell.
Elige un dispositivo para toda la terminal
Define ANDROID_SERIAL y todos los comandos adb de esa terminal irán a ese dispositivo:
export ANDROID_SERIAL=R58M123ABC # macOS / Linux
set ANDROID_SERIAL=R58M123ABC # Windows Command Prompt
$env:ANDROID_SERIAL = "R58M123ABC" # Windows PowerShellQuita los dispositivos que sobran
- Una conexión Wi-Fi vieja:
adb disconnect 192.168.1.20:5555, oadb disconnectpara cerrarlas todas. - Un emulador que olvidaste: ciérralo en Android Studio, o usa
adb -s emulator-5554 emu kill. - Una entrada fantasma offline:
adb kill-serverla elimina. - El mismo celular dos veces (una por USB y otra por Wi-Fi): desconecta una de las dos.
Scripts con muchos dispositivos
Para ejecutar el mismo comando en todos los dispositivos conectados, recorre los seriales:
for s in $(adb devices | awk 'NR>1 && $2=="device" {print $1}'); do
adb -s "$s" shell getprop ro.product.model
doneMás sobre cómo manejar muchos celulares en cómo armar un laboratorio de dispositivos Android.
Varios dispositivos en ADBKit
ADBKit nunca tiene este problema, porque cada dispositivo tiene su propia pestaña. Conecta hasta seis celulares por USB o Wi-Fi, cambia entre ellos como entre pestañas del navegador, y cada acción va al dispositivo que estás viendo. Solo la pestaña visible transmite video, así que las demás quedan livianas. Abre ADBKit y usa + Add device para conectar el siguiente.