ADBを介してポートを逆方向に転送しようとしていますが、error: closed
。通常の転送は機能します。セッションスニペット:
$ 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
USB経由でルート化されていないNexus 7 2012 Android 4.4.4に接続しています。
adb reverse
はAndroid 5.0で導入されました
adb reverse
は5.0より前のAndroidバージョンではサポートされていないため、代わりにWi-Fi経由で接続するなど、別の方法を使用する必要があります。 React Nativeを使用している場合、Facebookは Wi-Fi経由で開発サーバーに接続するための公式ドキュメント を追加しました。 MacOSの手順を引用しますが、LinuxとWindowsの手順もあります。
方法2:Wi-Fi経由で接続する
Wi-Fi経由で開発サーバーに接続することもできます。最初に、USBケーブルを使用してデバイスにアプリをインストールする必要がありますが、それが完了したら、次の手順に従ってワイヤレスでデバッグできます。先に進む前に、開発マシンの現在のIPアドレスが必要です。
IPアドレスは、システム環境設定→ネットワークで見つけることができます。
ノートパソコンと携帯電話が同じWi-Fiネットワーク上にあることを確認してください。デバイスでReactネイティブアプリを開きます。エラーのある赤い画面が表示されます。これで結構です。次の手順で修正します。アプリ内の開発者メニューを開きます。 [開発設定]→[デバイスのサーバーホストのデバッグ]に移動します。マシンのIPアドレスとローカル開発サーバーのポートを入力します(例:10.0.1.1:8081)。 [開発]メニューに戻り、[JSの再読み込み]を選択します。
これらの手順を注意深く実行してください。
注:すべてのコマンドは、プロジェクト内でのみ実行する必要があります。
最初にこのコマンドを実行します:
npm react-native start
同じプロジェクトで別のウィンドウを開き、次を実行します。
curl "http://localhost:8081/index.Android.bundle?platform=Android" -o "Android/app/src/main/assets/index.Android.bundle"
これにより、index.Android.bundle
アセットフォルダー内
実行:
npm react-native run-Android
ビルドフォルダーでapkを取得できるようになりました。
adb reverse
にはAndroid 5.0+が必要です。それ以前のデバイスの場合は、そのような回避策を使用する必要があります。
BusyboxをAndroidデバイス(ほとんどのGenymotion画像にあります)にインストールしている場合、adb reverse
この呪文の使用:
adb Shell busybox nc -ll -p {guest port} -e busybox nc {Host IP} {Host port}
この場合、「ゲスト」はAndroidエミュレーターで実行中のOS、「ホスト」はエミュレーターを実行中のコンピューターです。
adbリバースの原因はAndroid以前の5では、Androidをリッスンし、このインバウンド接続を介して他の接続をトンネリングするサービスでadb forwardを使用できます。これは主にsshで行いますが、Androidにはsshサーバーが必要です.ssh -R incommingreverseportonandroid:hostyouwanttoforwardto:portyouwanttoforwardto sshuseronandroid @ localhost -p portyouhaveusedforadbforwaqrdtoaccessandroidssshserverを使用して接続できます
しかし、私はAndroidでsshサーバーを有効にする方法を知りません。おそらく、sshが暗号化を使用するより良い方法があります。
私は自然の背後に強制されているときにサービスを共有するために私のサーバーでこの方法を使用しています...
誰かがこの理論的な方法を実際的な可能性に導く方法を見つけることを願っています