J'essaie d'inverser le port via ADB, mais il ne renvoie que l'erreur cryptique de error: closed
. La transmission normale fonctionne. Extrait de session:
$ 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
Je me connecte via USB à Nexus 7 2012 non-root Android 4.4.4 à partir de Windows 7 Pro x64 sur Boot Camp.
adb reverse
a été introduit dans Android 5.0
Étant donné que adb reverse
n'est pas pris en charge dans les versions d'Android inférieures à 5.0, vous devez utiliser une autre méthode, par exemple, vous connecter via Wi-Fi. Si vous utilisez React Native, Facebook a ajouté la documentation officielle permettant de se connecter au serveur de développement via Wi-Fi . En citant les instructions pour MacOS, mais ils les ont également pour Linux et Windows:
Méthode 2: Connexion via Wi-Fi
Vous pouvez également vous connecter au serveur de développement via Wi-Fi. Vous devrez d’abord installer l’application sur votre appareil à l’aide d’un câble USB, mais une fois que cela sera fait, vous pourrez déboguer sans fil en suivant ces instructions. Vous aurez besoin de l'adresse IP actuelle de votre ordinateur de développement avant de continuer.
Vous pouvez trouver l'adresse IP dans Préférences Système → Réseau.
Assurez-vous que votre ordinateur portable et votre téléphone sont sur le même réseau Wi-Fi . Ouvrez votre application React Native sur votre appareil . Vous verrez un écran rouge avec une erreur. C'est acceptable. Les étapes suivantes résoudront ce problème . Ouvrez le menu Développeur intégré à l'application . Sélectionnez Paramètres du développeur → Hôte du serveur de débogage pour le périphérique . Tapez l'adresse IP de votre ordinateur et le port du serveur de développement local (par exemple, 10.0.1.1:8081). Retournez au menu Developer et sélectionnez Reload JS.
Suivez attentivement ces étapes.
Remarque: Toutes les commandes doivent uniquement être exécutées dans un projet.
Exécutez cette commande en premier:
npm react-native start
Ouvrez une autre fenêtre dans le même projet et exécutez:
curl "http://localhost:8081/index.Android.bundle?platform=Android" -o "Android/app/src/main/assets/index.Android.bundle"
Cela va créer index.Android.bundle
dans le dossier des actifs
Courir:
npm react-native run-Android
Maintenant, vous pouvez obtenir apk dans le dossier de construction qui fonctionnera correctement.
adb reverse
nécessite Android 5.0+. Pour les périphériques antérieurs à cela, vous devrez utiliser une solution de contournement comme celle-ci.
Si busybox est installé sur votre appareil Android (comme la plupart des images Genymotion), vous pouvez émuler adb reverse
en utilisant cette incantation:
adb Shell busybox nc -ll -p {guest port} -e busybox nc {Host IP} {Host port}
Dans ce cas, "invité" correspond au système d'exploitation Android s'exécutant dans l'émulateur et "hôte" à l'ordinateur exécutant l'émulateur.
car adb reverse ne fonctionne pas sur Android avant 5, vous pouvez probablement utiliser adb forward avec un service écoutant sur Android et tunnellisant d’autres connexions via cette connexion entrante. Je le fais principalement avec ssh, mais vous auriez besoin d'un serveur ssh sous Android. vous pouvez vous connecter en utilisant ssh -R incommingreverseportonandroid: hostyouwanttoforwardto: portyouwanttoforwardto sshuseronandroid @ localhost -p portyouhaveusedforadbforwaqrdtoaccessandroidssshserver
mais je ne sais pas comment activer un serveur ssh sur Android et il existe peut-être un meilleur moyen car ssh utilise un cryptage qui n’est pas nécessaire par rapport à usb ni à l’utilisation du processeur.
j'utilise cette façon avec mon serveur pour partager un service quand je suis forcé derrière un nat ...
j'espère que quelqu'un trouvera le moyen de concrétiser ce moyen théorique