2015-07-20 8 views
30

Ich versuche, Port über ADB rückwärts-weiterleiten, aber es gibt nur kryptischen Fehler error: closed zurück. Normale Weiterleitung funktioniert. Session-Schnipsel:Getting "Fehler: geschlossen" zweimal auf "adb Reverse"

$ 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 

Ich Anschluss über USB an nicht-verwurzelten Nexus 7 2012 Android 4.4.4 von Windows 7 Pro x64 auf Boot Camp.

Antwort

58

adb reverse wurde in Android eingeführt 5,0

+13

Was ist die Lösung für Android 4.2? –

+4

Hier ist die Lösung: http://facebook.github.io/react-native/docs/running-on-device-android.html#configure-device-to-connect-to-the-dev-server-via-wi -fi –

+0

Ich bekomme diese in 5.0 – hellyale

9

Befolgen Sie diese Schritte sorgfältig.

Hinweis: Alle Befehle müssen nur in einem Projekt ausgeführt werden.

  1. Führen Sie diesen Befehl zuerst:

    npm react-native start 
    
  2. öffnet ein weiteres Fenster im selben Projekt und führt:

    curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle" 
    
  3. Diese index.android.bundle im Vermögen Ordner

  4. schaffen

    Lauf:

    npm react-native run-android 
    

Jetzt können Sie apk in den Build-Ordner erhalten, die fein arbeiten.

+3

Ich denke, es sollte "Reaktion-native Start" und "Reaktion-native Run-Android" ohne sein 'npm'. Npm ist für Paketmanagement ... – Mzn

0

Ursache von adb Reverse nicht funktioniert auf Android vor 5 Sie könnten wahrscheinlich ADB vorwärts mit einem Dienst auf Android und Tunneln andere Verbindungen durch diese eingehende Verbindung verwenden. Ich mache das hauptsächlich mit SSH, aber Sie würden einen SSH-Server auf Android benötigen. hostyouwanttoforwardto: portyouwanttoforwardto sshuseronandroid @ localhost -p portyouhaveusedforadbforwaqrdtoaccessandroidssshserver

aber ich weiß nicht, wie man einen SSH-Server auf Android aktivieren, und vielleicht gibt es eine bessere Art und Weise Ursache SSH-Verschlüsselung verwendet, die älter als erforderlich ist, das Sie als kann mit ssh -R incommingreverseportonandroid verbinden USB und verbrauchen CPU.

ich mit meinem Server auf diese Art und Weise bin mit einem Dienst zu teilen, wenn ich hinter einem nat gezwungen bin ...

Hoffnung jemand einen Weg finden, wird diese teoretical Weg in die praktische Möglichkeit

20

Da adb reverse zu bringen Wird in Android-Versionen unter 5,0 nicht unterstützt, müssen Sie eine alternative Methode verwenden, z. B. eine Verbindung über WLAN. Wenn Sie React Native verwenden, hat Facebook official documentation to connect to the development server via Wi-Fi hinzugefügt. Zitiert die Anweisungen für MacOS, aber sie haben sie auch für Linux und Windows:

Method 2: Connect via Wi-Fi

You can also connect to the development server over Wi-Fi. You'll first need to install the app on your device using a USB cable, but once that has been done you can debug wirelessly by following these instructions. You'll need your development machine's current IP address before proceeding.

You can find the IP address in System Preferences → Network.

Make sure your laptop and your phone are on the same Wi-Fi network. Open your React Native app on your device. You'll see a red screen with an error. This is OK. The following steps will fix that. Open the in-app Developer menu. Go to Dev Settings → Debug server host for device. Type in your machine's IP address and the port of the local dev server (e.g. 10.0.1.1:8081). Go back to the Developer menu and select Reload JS.

+0

Arbeitete wie ein Charme !. Vielen Dank. – KQI

+0

Beste Antwort !! Danke – gatolgaj

+2

Noch ein Hinweis: Wenn Sie wie ich sind, wer auf Android 4-Gerät (z. B. Smart TV) entwickelt, die Schütteln nicht unterstützt, können Sie noch In-App-Entwickler-Menü auf dem Gerät auslösen, indem Sie ausführen: "adb Shell-Eingabe keyevent KEYCODE_MENU ". – yawl

3

adb reverse erfordert Android 5.0 oder höher. Bei früheren Geräten müssen Sie einen Workaround wie diesen verwenden.

Wenn Sie Busybox auf Ihrem Android-Gerät installiert haben (die meisten Genymotion Bilder tun), können Sie adb reverse mit dieser Beschwörung emulieren:

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

In diesem Fall "Gast" ist das Android OS läuft in Der Emulator und "Host" ist der Computer, auf dem der Emulator ausgeführt wird.

+0

Können Sie ein Beispiel dafür angeben, wie Gastport, Host-IP und Host-Port abgerufen werden? Ich habe adb-Geräte verwendet, um den Gast-Port zu bekommen. Ich habe dann ifconfig en0 verwendet, um die Host-IP zu bekommen, dann denke ich, der Port ist 8080, weil ich react-native Start - Port = 8080, aber ich bekomme den Fehler "nc: bind Adresse wird bereits verwendet" – kayla

+0

Es funktioniert nicht, wenn 2 Geräte nicht mit dem gleichen Netzwerk verbunden sind, nur USB ist nicht genug. Was "busybox nc" tut, sind Tunneling-Ströme. Warum also nicht über WiFi mit einem einzelnen Netzwerk verbinden und den Bundle-Holer entsprechend der IP-Adresse der Entwicklungsmaschine ändern? – iamawebgeek

Verwandte Themen