studio remota programacion extension depuracion debug chrome app android linux ubuntu adb

remota - Ubuntu: depuración de dispositivo Android



logcat android studio (6)

Esta pregunta ya tiene una respuesta aquí:

Tengo un HTC Desire que me gustaría depurar y ejecutar mi aplicación Android. Pero cuando en Eclipse aparece la Ventana donde puedo elegir entre dispositivos, mi HTC Desire aparece solo con questionmarks (????????). ¿Qué estoy haciendo mal?

He intentado esto:

Habilita la depuración USB en mi dispositivo y habilité la depuración en mi archivo Manifest.xml de la aplicación.

En Terminal tengo hacer esto:

  1. Inicie sesión como usuario root y cree este archivo: /etc/udev/rules.d/51-android.rules.
  2. SUBSISTEMA == "usb", SYSFS {idVendor} == "0bb4", MODE = "0666"
  3. sudo service udev restart

¿Qué más podría probar o haber olvidado?


Nota: La respuesta aceptada de EboMike es INCORRECTA.

Sé que este es un viejo hilo de preguntas, pero lo encontré tratando de resolver el mismo problema. Sin embargo, la respuesta aceptada fue incorrecta. No debería haber necesidad de ejecutar el servidor adb como root una vez que tenga las reglas de udev establecidas correctamente.

El paso 3 en http://developer.android.com/tools/device.html le brinda la resolución correcta. Específicamente, agregue o modifique /etc/udev/rules.d/51-android.rules con la siguiente línea:

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", ATTR{idProduct}=="0fff", MODE="0666", GROUP="plugdev"

En este caso, 0bb4 es la identificación del proveedor para HTC. 0fff es la identificación del producto para Nexus One. Use la tabla en el enlace de arriba, o lsusb para identificar el id de proveedor de su dispositivo y la identificación del producto. p.ej

$ lsusb Bus 001 Device 006: ID 18d1:4e22 Google Inc. Nexus S (debug)

18d1 es la identificación del proveedor de este dispositivo en particular, y 4e22 es la identificación del producto. Puede dejar fuera de la definición "GRUPO" si desea habilitar el acceso a este dispositivo para todos los usuarios. Si no es así, asegúrese de agregarse al grupo plugdev si aún no lo hace. Después de crear este archivo, reinicie o vuelva a cargar udev.

udevadm control --reload-rules

Si tuviera que agregarse a un grupo, deberá cerrar la sesión y volver a conectarse.

Mata a cualquier antiguo servidor adb con "adb kill-server", conecta tu dispositivo y ejecuta "adb devices". Esto reiniciará el servidor y ahora debería ver su dispositivo. No es necesario ejecutar adb como root, incluso para iniciar el servidor adb. En general, también es una mala idea ejecutar cosas como root a menos que sea absolutamente necesario.


Asegúrese de haber instalado sudo apt-get install android-tools-adb Ahora verifique sudo adb Le mostrará la ayuda de adb

Ahora por favor matar / iniciar adb use los siguientes comandos:

sudo adb kill-server sudo adb start-server

Por último, sudo adb devices

¡Espero que esto funcione!


Esto se debe a que no le ha dado permiso a su adb para acceder a su hardware. Tienes dos soluciones:

temporal -> matar a todos los procesos de adb existentes y reiniciar con superusuario

ps -ef | grep adb | awk ''{print $2}'' | xargs kill sudo adb server-restart

o

sudo <your android SDK path>/platform-tools/adb server-restart

permanente -> agregue sus dispositivos a la lista de udev Agregue la siguiente línea a su /etc/udev/rules.d/51-android.rules como root con idVendor correcto usando esta lista .

SUBSYSTEM=="usb", ATTR{idVendor}=="0bb4", MODE="0666", GROUP="plugdev"

seguido por el siguiente comando:

chmod a+r /etc/udev/rules.d/51-android.rules

Si adb no funciona, haga lo siguiente:

sudo ln -s <your android SDK path>/platform-tools/adb /usr/local/sbin/adb


He logrado que mi Nexus S "bricked" vuelva a funcionar haciendo lo que se dice aquí. Sin embargo, una pequeña adición era necesaria.

Cuando haces un lsusb y el subsistema USB te dice qué dispositivo Android está conectado, el mío me lo devolvió:

$ lsusb Bus 001 Device 006: ID 18d1:d001 Google Inc.

Tenga en cuenta el d001 y no ninguno de los estados conocidos, es decir, 4e20, 4e21 o 4e22. Entonces lo que hice fue agregar otra fila en 51-android.rules específicamente con este estado desconocido y marcarlo como "recovery / debug".

Desconecta y reconecta Android. Comprueba lsusb nuevamente para asegurarte de que al menos se ve. Y ... Eso me dio esto

$ adb devices List of devices attached 34353601BB2000EC recovery

en lugar de esto

$ adb devices -l List of devices attached ???????????? no permissions usb:1-3

Después de eso, simplemente seguí el procedimiento para restaurar las imágenes de fábrica . Espero eso ayude.


Necesita ejecutar adb manualmente usando sudo. Si acaba de ejecutar adb sin sudo (o si permite que Eclipse / ADT lo haga por usted), no tendrá los permisos necesarios para ver sus dispositivos.

Si ya se está ejecutando, sudo adb kill-server y sudo adb start-server.


la identificación del dispositivo en la comunicación de los adb devices está usando el número de serie de los dispositivos usb de Android.

Entonces, si obtiene una cadena nula del número de serie, se mostrará ???????????

En el código fuente del servidor adb:

static size_t format_transport(atransport *t, char *buf, size_t bufsize, int long_listing) { const char* serial = t->serial; if (!serial || !serial[0]) serial = "????????????";

Por lo tanto, podría ser que su servidor adb no se esté ejecutando en el privilegio raíz, o que sus dispositivos usb no permitan que el servidor adb lo lea. Una simple comprobación sería usar lsusb -v | grep iSerial para ver si puede obtener el campo iSerial de su dispositivo Android.

Además, hay posibilidades de que la cadena iSerial no esté bien preparada en el dispositivo. He visto muchos productos de ingeniería que no tienen iSerial, o todos los dispositivos muestran la misma identificación de dispositivo.

Algunas veces, el controlador leerá una sección de datos en el flash que se programa de forma única de dispositivo a dispositivo para convertirlo en id de iSerial / dispositivo.