Estoy tratando de depurar/conectar un dispositivo para desarrollo usando WSL2 (Ubuntu). Seguí los pasos en esta publicación https://stackoverflow.com/a/58229368/21061 que configura ADB en Windows y Linux usando la misma versión de ADB.
Sin embargo, una vez que lo he hecho, obtengo una lista vacía de dispositivos en la terminal de Ubuntu. Intenté matar y reiniciar el servidor ADB desde la línea de comandos de Windows y eso no parece hacer ninguna diferencia. ¿Esto no es posible en WSL2 o hay algo que me estoy perdiendo?
Esta respuesta funcionó para mí usando WSL 2:
En Windows:
adb tcpip 5555Luego en WSL 2:
adb connect [ip device]:5555Si es la primera vez, te va a pedir permiso en tu teléfono, asegúrate de marcar la casilla para dar permiso siempre. Luego reinicie adb y conéctese nuevamente:
adb kill-server adb connect [ip device]:5555Puede obtener su [dispositivo ip] desde: Configuración > Acerca del dispositivo > Estado. Tiene un formulario como: 170.100.100.100
La respuesta de Jorge está bien, pero los principiantes como yo pueden necesitar más detalles.
[dispositivo ip] es la dirección [YOUR_PHONE_IP] . Para obtener la dirección IP de su teléfono, vaya a "Configuración -> Acerca del teléfono -> Estado -> Dirección IP". Probablemente será algo como 192.168.xy
No agregué adb a mi variable PATH, ni en Windows ni en Linux/WSL2. En cambio, descargué la última versión para ambos sistemas operativos usando los enlaces a continuación:
https://dl.google.com/android/repository/platform-tools-latest-linux.zip https://dl.google.com/android/repository/platform-tools-latest-windows.zip
Una vez que descomprimí las herramientas de la plataforma, tuve que cambiar el directorio a la carpeta descomprimida ( cd platform-tools ) tanto en PowerShell como en WSL2.
Luego, en PowerShell en Windows, ejecuto .\adb tcpip 5555 en la carpeta platform-tools .
En la terminal WSL2, ejecuto ./adb connect 192.168.2.199:5555 (donde 192.168.2.199 era mi dirección PHONE_IP).
La primera vez que se conecte usando la dirección [YOUR_PHONE_IP] , se le pedirá que confirme la conexión. El adb podría decir que no se pudo conectar mientras esperaba la confirmación. Si es así, ejecute ./adb kill-server en la terminal WSL2 y luego ejecute ./adb connect [YOUR_PHONE_IP]:5555 nuevamente.
Puede mostrar la lista de dispositivos conectados a través de dispositivos .\adb devices en PowerShell y ./adb devices ./adb en WSL2.
Eso es todo. Ahora debería poder depurar su teléfono usando WSL2.
podemos hacerlo más fácilmente en WSL2
si instalamos adb en windows y la ruta es /mnt/c/platform-tools/adb.exe
la instalación de WSL2 adb en /usr/bin/adb
cambie adb a adb_bk y configure ln -s para vincular adb.exe
sudo mv /usr/bin/adb /usr/bin/adb_bk
sudo ln -s /mnt/c/plataforma-herramientas/adb.exe /usr/bin/adb
ahora podemos usar adb y trabajar en bash script
intentalo
printf '\n%s\n%s\n' \ '### Alias for Android Debugging in WSL2' \ 'alias adb="/mnt/c/Program\ Files\ \(x86\)/adb/adb.exe"' \ >> ~/.bashrc source ~/.bashrc C:\> adb devices List of devices attached P1CN21AKXAZ device Si adb.exe en Windows encontrará su dispositivo Android, entonces también adb en wsl lo hará. Escribo esto porque no recomiendo a nadie que use adb tcpip (que se recomienda en algunos lugares que he visto) sin saber exactamente qué riesgos conlleva. Enlazo mi secuencia de comandos para piratear cualquier dispositivo Android en 1 a 3 segundos copiando y pegando desde dispositivos que usaron el comando adb tcpip sin comprender las consecuencias. Quiero señalar que estoy escribiendo esto para anunciar lo peligroso que puede ser dar consejos sobre algo sin ser igual a dar el consejo de que cuando termines, ¡apagúalo lo antes posible!
adb disconnect ln -s "/mnt/c/Program\ Files\ \(x86\)/adb/adb.exe" /usr/bin/adb