Ich verwende React.JS und wenn ich react-native run-Android
(mit angeschlossenem Gerät) mache, sehe ich eine leere Seite. Wenn ich das Gerät schüttle und in der Optionsliste Debug JS Remotely
auswähle, wird der folgende Bildschirm angezeigt.
Zu Ihrer Information:
OS: Ubuntu 16.04
Node version is: v4.6.2
Java version "1.8.0_111"
react": "15.4.1
react-native": "0.38.0
In meinem Fall bestand das Problem darin, dass der Emulator eine Anforderung an Folgendes stellte:
http://10.0.2.2:8081/debugger-ui
anstatt:
http://localhost:8081/debugger-ui
und die Anfrage schlug fehl.
So lösen Sie das Problem: Bevor Sie das Remote-Debugging auf Ihrem Emulator aktivieren, , öffnen Sie http://localhost:8081/debugger-ui
in chrom. Aktivieren Sie dann das Remote-Debugging und kehren Sie zur Chrome-Seite zurück, auf der Sie Ihre Konsolenprotokolle sehen sollten.
Das Problem wurde für mich wie folgt gelöst:
Cmd + M
auf dem EmulatorbildschirmDev settings > Debug server Host & port for device
localhost:8081
einstellenreact-native run-Android
Debugger ist jetzt verbunden!
Ich habe es mit adb reverse tcp:8081 tcp:8081
und dann reload
auf meinem Handy gelöst.
In meinem Fall wurde durch Auswahl von Debug JS Remote Chrome gestartet, aber keine Verbindung mit dem Android-Gerät hergestellt. Normalerweise ist die Debugging-URL in der neuen Chrome-Registerkarte/dem neuen Fenster in der Adressleiste bereits ausgefüllt. In diesem Fall war die Adressleiste jedoch leer. Nach dem Timeout wurde die Fehlermeldung "Verbindung mit Remote-Debugger kann nicht hergestellt werden" angezeigt. Ich habe dies mit dem folgenden Verfahren behoben:
adb reverse tcp:8081 tcp:8081
ausführenhttp://localhost:8081/debugger-ui
in das Adressfeld meines Chrome-Browsers ein. Sie sollten den normalen Debugging-Bildschirm sehen, aber Ihre App ist immer noch nicht verbunden.Das sollte das Problem beheben. Wenn nicht, müssen Sie möglicherweise die folgenden zusätzlichen Schritte ausführen:
react-native run-Android
.Ich hatte ein ähnliches Problem, das mich zu dieser Frage führte. In meinem Browser-Debugger wurde folgende Fehlermeldung angezeigt:
Zugriff auf ' http: // localhost: 8081/index.delta? Platform = Android & dev = true & minify = false ' from Origin ' http://127.0.0.1:8081 ' wurde von blockiert CORS-Richtlinie: Auf der angeforderten Ressource ist kein Header "Access-Control-Allow-Origin" vorhanden. Wenn eine undurchsichtige Antwort Ihren Anforderungen entspricht, setzen Sie den Modus der Anforderung auf 'no-cors', um die Ressource bei deaktiviertem CORS abzurufen.
Es dauerte eine Weile, bis ich merkte, dass ich 127.0.0.1:8081
anstelle von localhost:8081
für meinen Debugger verwendete.
Um das Problem zu beheben, musste ich einfach Chrome von:
http://127.0.0.1:8081/debugger-ui/
zu
http://localhost:8081/debugger-ui/
Stellen Sie sicher, dass der Knotenserver, der das Bundle bereitstellt, im Hintergrund ausgeführt wird. Um den Server zu starten, verwenden Sie npm start
oder react-native start
und halten die Registerkarte während der Entwicklung geöffnet
Mein Fall ist, dass, wenn ich auf "Remote JS-Debugging aktivieren" tippe, Chrome gestartet wird, aber keine Verbindung hergestellt werden kann.
Ich habe versucht zu laufen:
adb reverse tcp:8081 tcp:8081
, hat aber nicht funktioniert.
Ich habe meinen Chrome komplett deinstalliert und einen neuen installiert. Und es funktioniert.
So können Sie laufen:
Mit allen beeindruckenden Antworten, die die Experten-Entwickler speziell Ribamar Santos
zur Verfügung gestellt haben, müssen Sie etwas schwierigeres prüfen, wenn Sie es nicht zum Laufen gebracht haben!
So etwas wie Airplane mode
deines (emulierten) Telefons! Oder Ihr network status of Emulator
(Data status and Voice status on Cellular tab of Emulator configuration
), der manipuliert werden könnte, um das Netzwerk nicht auszudrücken! für einige Emulationsanforderungen!
Ich habe dieses Problem durch diesen Trick überwunden! Es war ein bisschen atemberaubend, dieses Loch zu finden!
deinstallieren Sie Ihre Anwendung und führen Sie dann "Reak-Native Run-Android" aus. Klicken Sie dann auf Debuggen und dann auf Chrome ersetzen http: // localhost: 8081/debugger-ui/ . Wenn Sie immer noch nicht erfolgreich sind, versuchen Sie es erneut
in meinem Fall muss es auch das npm-Paket installieren
so
npm install react-native-debugger -g
Ich antwortete @sajib und benutzte dieses Skript, um Ports umzuleiten:
#!/usr/bin/env bash
# packager
adb reverse tcp:8081 tcp:8081
adb -d reverse tcp:8081 tcp:8081
adb -e reverse tcp:8081 tcp:8081
echo "???? React Native Packager Redirected ????"