Obteniendo “error: cerrado” dos veces en “adb reverse”

Estoy intentando revertir el puerto a través de ADB, pero simplemente devuelve un críptico error de error: closed . El reenvío normal funciona. Fragmento de sesión:

 $ adb forward tcp:59778 tcp:59778 $ adb forward --list 015d2109ce0c1a0f tcp:59778 tcp:59778 $ adb forward --remove-all $ adb forward --list $ adb reverse --list error: closed error: closed $ adb reverse tcp:59778 tcp:59778 error: closed error: closed 

Me estoy conectando a través de USB a Nexus 7 2012 Android 4.4.4 sin encriptar desde Windows 7 Pro x64 en Boot Camp.

adb reverse se introdujo en Android 5.0

Como adb reverse no es compatible con versiones de Android inferiores a 5.0, debe utilizar un método alternativo, por ejemplo, conectarse a través de Wi-Fi. Si está utilizando React Native, Facebook ha agregado documentación oficial para conectarse al servidor de desarrollo a través de Wi-Fi . Citando las instrucciones para MacOS, pero también las tienen para Linux y Windows:

Método 2: conectarse a través de Wi-Fi

También puede conectarse al servidor de desarrollo a través de Wi-Fi. Primero deberá instalar la aplicación en su dispositivo con un cable USB, pero una vez que lo haya hecho, puede depurar de manera inalámbrica siguiendo estas instrucciones. Necesitará la dirección IP actual de su máquina de desarrollo antes de continuar.

Puede encontrar la dirección IP en Preferencias del sistema → Red.

Asegúrese de que su computadora portátil y su teléfono estén en la misma red Wi-Fi. Abra su aplicación React Native en su dispositivo. Verás una pantalla roja con un error. Esto esta bien. Los siguientes pasos lo arreglarán. Abra el menú del desarrollador en la aplicación. Vaya a Dev Settings → Debug server host para el dispositivo. Escriba la dirección IP de su máquina y el puerto del servidor de desarrollo local (por ejemplo, 10.0.1.1:8081). Regrese al menú Desarrollador y seleccione Recargar JS.

Sigue estos pasos cuidadosamente.

Nota: Todos los comandos deben ejecutarse solo dentro de un proyecto.

  1. Ejecute este comando primero:

     npm react-native start 
  2. Abra otra ventana en el mismo proyecto y ejecute:

     curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle" 
  3. Esto creará index.android.bundle en la carpeta de activos

  4. Correr:

     npm react-native run-android 

Ahora puede obtener apk en la carpeta de comstackción, que funcionará bien.

adb reverse requiere Android 5.0+. Para dispositivos anteriores a eso, necesitarás usar una solución alternativa como esa.

Si tiene busybox instalado en su dispositivo Android (la mayoría de las imágenes de Genymotion lo hacen), puede emular el adb reverse usando este conjuro:

adb shell busybox nc -ll -p {guest port} -e busybox nc {host IP} {host port}

En este caso, “invitado” es el sistema operativo Android que se ejecuta en el emulador y “host” es la computadora que ejecuta el emulador.

causa de que adb reverse no funcione en android anterior 5 podría usar propab forward con un servicio de escucha en android y tunelizando otras conexiones a través de esta conexión entrante. Lo hago principalmente con ssh, pero necesitarías un servidor ssh en Android. usted que puede conectarse utilizando ssh -R incommingreverseportonendroid: hostyouwantofforwardto: portyoutantofforwardto sshuseronandroid @ localhost -p portyouhaveusedforadbforwaqrdtoaccessandroidssshserver

pero no sé cómo habilitar un servidor ssh en Android y tal vez haya una mejor manera porque ssh usa el cifrado que no es necesario sobre el usb y el uso de la CPU.

Estoy usando esto con mi servidor para compartir un servicio cuando me veo forzado detrás de un nat …

Espero que alguien encuentre una manera de llevar este camino teórico a la posibilidad práctica