Solución:
Actualización importante : Como señala @equiman, hay algunos cables USB que son solo para cargar y no transmiten datos. A veces, el simple hecho de intercambiar cables ayudará.
Actualizar para algunas versiones de adb, ~/.android/adb_usb.ini
tiene que ser eliminado.
Resumen ejecutivo: Agregue el ID de proveedor a ~/.android/adb_usb.ini
y reinicie adb
Todos los detalles:
La mayoría de las veces, no será necesario hacer nada para que la Mac reconozca el teléfono / dispositivo. En serio, el 99% de las veces “simplemente funciona”.
Dicho esto, la forma más rápida de restablecer adb es reiniciarlo con los siguientes comandos en secuencia:
adb kill-server
adb devices
Pero de vez en cuando el adb devices
El comando simplemente no encuentra su dispositivo. Tal vez si está trabajando con algún dispositivo experimental o prototipo o fuera de lo común, tal vez simplemente sea desconocido y no aparezca.
Puede ayudar a adb a encontrar su dispositivo informándole sobre el “ID de proveedor” de su dispositivo, esencialmente proporcionándole una pista. Esto se puede hacer poniendo el ID de proveedor hexadecimal en el archivo ~/.android/adb_usb.ini
Pero primero debe encontrar el valor de ID de proveedor. Afortunadamente en Mac, esto es bastante fácil. Lanzar el Información del sistema solicitud. Se encuentra en el /Applications/Utilities/
carpeta, o puede acceder a ella a través del menú Apple en la esquina superior izquierda de la pantalla, seleccione “Acerca de esta Mac”, luego haga clic en el botón “Más información …”. Captura de pantalla aquí:
Expande el árbol “Hardware”, selecciona “USB” y luego busca tu dispositivo de destino. En el ejemplo anterior, mi dispositivo se llama “SomeDevice” (lo hice en Photoshop para ocultar el fabricante del dispositivo real). Otro ejemplo sería una tableta Samsung que aparece como “SAMSUNG_Android” (por cierto, no tuve que hacer nada especial para que la tableta Samsung funcionara). De todos modos, haga clic en su dispositivo y los detalles completos se mostrarán en el panel de abajo. Aquí es donde muestra el ID del proveedor. En mi ejemplo de la captura de pantalla, el valor es 0x9d17
– use este valor en el siguiente comando
echo 0x9d17 >> ~/.android/adb_usb.ini
Está bien si aún no lo tenías adb_usb.ini
antes de este, la mayoría de las veces simplemente no es necesario para encontrar su dispositivo, por lo que no es inusual que ese archivo no esté presente. El comando anterior lo creará o lo agregará al final si ya existe. Ahora ejecute los comandos enumerados anteriormente para reiniciar adb y debería estar listo para comenzar.
adb kill-server ; adb devices
* daemon not running. starting it now on port 5037 *
* daemon started successfully *
List of devices attached
123ABC456DEF001 device
Solución específica para Nexus 4 y Nexus 5 para OS X
No aparece ningún dispositivo en la “Lista de dispositivos conectados” cuando ejecuté: adb devices
Reparar:
- Obtenga el SDK (última versión) de developer.android.com
- Ponga el modo de desarrollador en nexus 4 (Acerca del teléfono> Número de compilación> toque 7 veces para ingresar al Modo de desarrollo)
- Aparecerá una nueva opción de menú en el
'Settings'
: { } Opciones de desarrollador - Asegúrese de verificar lo siguiente en {} Opciones de desarrollador:
-
Depuración de USB: modo de depuración cuando el USB está conectado (acepte la ventana emergente de huellas dactilares RSA)
- Verifique las aplicaciones a través de USB: verifique las aplicaciones instaladas a través de ADB / ADT para ver si hay comportamiento dañino
-
Intente incluir su dispositivo desde ./adb devices y debería funcionar.
Respuesta tomada de: Alguna idea de por qué adb no reconoce mi nexus 4 en mac
Si ha instalado la aplicación EasyTether, esto puede interferir con ADB.
Desde esta página puede ejecutar el comando:
sudo kextunload /System/Library/Extensions/EasyTetherUSBEthernet.kext
esto descargará su extensión EasyTether.
Si necesita volver a habilitar EasyTether para el anclaje, creo que puede usar:
sudo kextload /System/Library/Extensions/EasyTetherUSBEthernet.kext
Esto funcionó en mi Samsung Galaxy S2. En mi caso, ha sido necesario ejecutar el comando kextunload cada vez que reinicio.