¿Cómo utilizar ADB Shell cuando hay varios dispositivos conectados? Falla con "error: más de un dispositivo y emulador"
$ 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
Utilice la -s
opción ANTES del comando para especificar el dispositivo, por ejemplo:
adb -s 7f1c864e shell
Para múltiples emuladores, use la IP y el puerto del proceso como identificación, como:
adb -s 192.168.232.2:5555 <command>
Consulte ¿Cómo obtener la dirección IP del emulador de Android?
Pero si solo hay un emulador, intente:
adb -e <command>
Consulte también http://developer.android.com/tools/help/adb.html#directingcommands
adb -d shell
(o adb -e shell
).
Este comando le ayudará en la mayoría de los casos, si es demasiado vago para escribir la identificación completa.
De http://developer.android.com/tools/help/adb.html#commandsummary :
-d
- Dirija un comando adb al único dispositivo USB conectado . Devuelve un error cuando hay más de un dispositivo USB conectado.
-e
- Dirija un comando adb al único emulador en ejecución . Devuelve un error cuando se está ejecutando más de un emulador.
Otra alternativa sería establecer la variable de entorno ANDROID_SERIAL en el número de serie correspondiente, suponiendo que esté utilizando Windows:
set ANDROID_SERIAL=7f1c864e
echo %ANDROID_SERIAL%
"7f1c864e"
Entonces podrás usarlo adb.exe shell
sin ningún problema.
Para instalar una apk en uno de tus emuladores:
Primero obtenga la lista de dispositivos:
-> adb devices
List of devices attached
25sdfsfb3801745eg device
emulator-0954 device
Luego instala el apk en tu emulador con la -s
bandera:
-> adb -s "25sdfsfb3801745eg" install "C:\Users\joel.joel\Downloads\release.apk"
Performing Streamed Install
Success
Ps.: el orden aquí importa, por lo que -s <id>
debe ir antes install
que el comando, de lo contrario no funcionará.
¡Espero que esto ayude a alguien!
Encontré esta pregunta después de ver el error "más de un dispositivo", en el que se mostraban 2 teléfonos sin conexión:
C:\Program Files (x86)\Android\android-sdk\android-tools>adb devices
List of devices attached
SH436WM01785 offline
SH436WM01785 offline
SH436WM01785 sideload
Si solo tiene un dispositivo conectado, ejecute los siguientes comandos para deshacerse de las conexiones sin conexión:
adb kill-server
adb devices