it-swarm.com.de

Fehlerhafter Fehler Packer kann Port 8081 nicht ändern

Ich habe "React native" auf meiner Windows-Box eingerichtet und meldet mir beim Ausführen von "Reaktiver native Start" ständig diese Nachricht:

ERROR Packager kann Port 8081 nicht abhören

Ok, also ändere ich es per Anleitung zu: 

Reaktiver Start --port = 8088

Das funktioniert super und ich erhalte das:

[12/24/2016, 10:03:33 AM]         HMR Server listening on /hot
React packager ready.
[12/24/2016, 10:03:41 AM] <START> Initializing Packager
[12/24/2016, 10:03:41 AM] <START> Building in-memory fs for JavaScript
[12/24/2016, 10:03:41 AM] <END>   Building in-memory fs for JavaScript (103ms)
[12/24/2016, 10:03:41 AM] <START> Building Haste Map
[12/24/2016, 10:03:41 AM] <END>   Building Haste Map (64ms)
[12/24/2016, 10:03:41 AM] <END>   Initializing Packager (221ms)

Also, wie angewiesen führe ich dann folgendes aus:

C:\ReactProjects\AwesomeProject> Reaktiver Lauf - Android

Und bekomme das:

JS server not recognized, continuing with build...
Running C:\Users\<user>\AppData\Local\Android\sdk/platform-tools/adb -s emulator-5554 reverse tcp:8081 tcp:8081
Building and installing the app on the device (cd Android && gradlew.bat installDebug)...
JS server not recognized, continuing with build...
Running C:\Users\<user>\AppData\Local\Android\sdk/platform-tools/adb -s emulator-5554 reverse tcp:8081 tcp:8081
Building and installing the app on the device (cd Android && gradlew.bat installDebug)...
.
.
.
BUILD SUCCESSFUL
Total time: 19.304 secs
Starting the app on emulator-5554 (C:\Users\<user>\AppData\Local\Android\sdk/platform-tools/adb -s emulator-5554 Shell am start -n com.awesomeproject/.MainActivity)...
Starting: Intent { cmp=com.awesomeproject/.MainActivity }

Leider gibt mir der Emulator dann:

“Could not get BachedBridge, make sure your bundle is packaged correctly”

Es gibt also Anweisungen, die besagen, dass Sie den Port des Emulators ändern müssen, aber ich verwende den Nexus 5, der Marshmellow ausführt, und kann diese Einstellung nicht finden:

     You will also need to update your applications to load the JavaScript bundle
     from the new port. Open the in-app Developer menu, then go to Dev Settings → Debug
 server Host for device and replace 8081 with your port of choice.

Hat jemand eine Idee, wie er den Emulator so einrichten kann, dass er den Packager erkennt? 

3
pthorsey

Leider sind die nativen Fehlermeldungen von Rect nicht so benutzerfreundlich. :(

Der Fehler "BachedBridge konnte nicht abgerufen werden, vergewissern Sie sich, dass das Bundle korrekt verpackt ist" bedeutet, dass Ihr Gerät nicht mit Ihrem System verbunden ist.

Wenn wir das Reaktiver-System starten, werden im Grunde Sachen im Mobile/Emulator bereitgestellt, aber wenn die App in Mobile/Emulator ausgeführt wird, weiß sie nicht, woher sie Code-Sachen ziehen muss, z. B. Assays, Bündelpakete usw. 

Also, wir müssen dem Emulator das sagen, Chef, bitte nimm alle deine Sachen vom Blahblah-Server unter Blah Blah Port. Wir müssen genau das tun, was Sie in der Frage erwähnt haben.

Öffnen Sie das In-App-Entwicklermenü und gehen Sie zu Dev-Einstellungen → Debug-Server-Host für Gerät

Ok, also müssen wir zwei Dinge erreichen:

  1. Entwicklermenü im Emulator öffnen:

    Das Entwicklermenü ist ein modales Popup-Fenster mit einer Reihe von Optionen wie Neuladen, JS Remote debuggen, Live-Neuladen aktivieren, Hot Reload aktivieren, Inspector umschalten ..., Dev-Einstellung (dies ist der, an dem wir interessiert sind ). Es gibt verschiedene Möglichkeiten, dies zu tun (siehe unten). Sehen Sie, was für Sie funktioniert

    • Wenn Sie ein Mac-Benutzer sind, drücken Sie einfach CMD + M. Es öffnet sich ein Popup-Fenster für Sie
    • Wenn Sie kein Mac sind, versuchen Sie es mit STRG + M
    • Für einige Leute funktionierte das Drücken von F2. "Fn + F2"
    • Wenn Sie frustriert sind und nichts funktioniert, führen Sie den folgenden Befehl in terminal aus (offensichtlich während der Emulator läuft) läuft auf dem Gerät :
    adb Shell input keyevent 82
    
  2. Dev-Einstellungen einrichten -> Debuggen auf Server Host und Port für Gerät **

    Navigieren Sie nach dem Öffnen des Developer-Menüs zu "Dev Settings -> Debug to Server Host und Port für Gerät". 

    Dieser Ort ist der heilige Gral zur Lösung Ihres Problems.

    Rufen Sie die IP-Adresse und den Port Ihres Computers ab, an dem Sie Reactive-Native (d. H. 8088) gestartet haben, und geben Sie hier ein. Es wird ungefähr wie "192.168.1.105:8088" aussehen. Überprüfen Sie den Link zum Bild hier

    Klicken Sie auf "OK" und laden Sie die App erneut (durch zweimaliges Drücken von R oder durch Klicken auf "Neu laden" im Entwicklermenü).

1
Brijesh Pandey

Sie können den folgenden Befehl verwenden, um Packager auf einem anderen Port auszuführen
reaktiver Start --port = 8082  

ODER Sie finden den Prozess, der Port 8081 verwendet, unter netstat -a -b -o .

netstat gibt Ihnen die PID des Prozesses. töte diesen Prozess um taskkill/F/pid 8081

Wenn Sie ein physisches Gerät verwenden, deinstallieren Sie die App vor der Ausführung von React-native run-Android  

0
user7405610

Ich hatte ein ähnliches Problem, da sogar auf meinem Windows-Laptop McAfee installiert ist. Das Problem wurde für mich folgendermaßen behoben:

1) Navigieren Sie zum Projektstamm und starten Sie die Reaktion auf einem anderen Port, indem Sie diesen Wert in server.js fest codieren. (Siehe diese Antwort )

react-native start

2) Öffnen Sie nun eine weitere Instanz der Eingabeaufforderung im Stammverzeichnis und führen Sie die folgenden Befehle nacheinander aus (optional können Sie eine bat-Datei mit den folgenden Befehlen erstellen und sie dann im Stammverzeichnis ablegen). Bitte ersetzen Sie die Portnummer des Emulators (in meinem Fall 5554) und die Portnummer Ihres reaktionsfähigen Servers (in meinem Fall 8088) durch entsprechende Werte.

adb -s emulator -5554 reverse tcp:8088 tcp:8088
node node_modules/react-native/local-cli/cli.js bundle --platform Android --dev true --reset-cache --entry-file index.Android.js --bundle-output Android/app/build/intermediates/assets/debug/index.Android.bundle --assets-dest Android/app/build/intermediates/res/merged/debug
cd Android && gradlew.bat installDebug

Der Knotenbefehl wird durch sumit6b erklärt

3) Nachdem der obige Befehl ausgeführt wurde, gab der reaktive Server einen Fehler aus und stoppte. Die APK-Datei wurde jedoch in unserer AVD installiert. Der Name der Datei entspricht dem Namen unseres Projekts. Öffnen Sie diese Datei manuell in der AVD. Wenn die App geöffnet wird , können wir auf Dev Settings zugreifen, indem wir drücken Ctrl + M Wechseln Sie hier zu Debug Server Host & Port für das Gerät und geben Sie localhost: 8088 ein (ersetzen Sie es nach Bedarf durch die entsprechende Portnummer) und klicken Sie auf OK. Wiederholen Sie jetzt die Schritte 1 und 2 erneut. Diesmal würde der reaktionsunabhängige Server nicht beendet. Schließen Sie die zuvor geöffnete App und öffnen Sie sie erneut manuell in AVD. Es sollte "Abrufen von JS-Bundle" und der reaktionsnative Server sollte "Transformieren von Dateien" anzeigen

4) Zu diesem Zeitpunkt sind Ihr reaktionsfähiger Server und Ihre AVD synchronisiert. Sie können dies überprüfen, indem Sie in index.Android.js einige Änderungen vornehmen und anschließend im Emulator R doppeltippen.

5) Wenn Sie weiterhin Probleme haben, versuchen Sie, localhost mit der IP-Adresse Ihres Computers im Debug-Server-Host und -Port für Geräteeinstellungen zu ändern, die in AVD vorhanden sind.

0
Saurabh Gour