React-native: Es konnte keine Verbindung zum Entwicklungsserver auf dem Android-Emulator und auf dem echten Gerät hergestellt werden

Erstellt am 6. Aug. 2017  ·  139Kommentare  ·  Quelle: facebook/react-native

BITTE LÖSCHEN SIE DIESE VORLAGE NICHT, BEVOR SIE DEN ERSTEN ABSCHNITT GELESEN HABEN.

Ist das ein Fehlerbericht?

Es ist ein Problem, mit dem ich konfrontiert bin, während ich das normale Awesome Project auf meinem System ausführe

Wenn Sie mit "Ja" geantwortet haben: Wir gehen davon aus, dass Sie etwa 30 Minuten benötigen, um einen qualitativ hochwertigen Fehlerbericht zu erstellen. Auch wenn dies nach viel erscheinen mag, hilft es uns, Probleme schneller zu beheben, wenn wir uns um sie kümmern. Für Fehlerberichte ist es ERFORDERLICH, den Rest dieser Vorlage auszufüllen, oder das Problem wird geschlossen. Wenn Sie mit „Nein“ geantwortet haben: Wir verwenden GitHub Issues ausschließlich zum Verfolgen von Fehlern in React Native. Wenn Sie Hilfe suchen, finden Sie auf der Community-Seite unter http://facebook.github.io/react-native/support.html verschiedene Ressourcen, die Ihnen beim Einstieg helfen sollten. Jetzt nach unten scrollen!

Haben Sie die Beitragsrichtlinien gelesen?

ja

Umfeld

Bitte füllen Sie alle relevanten Felder aus, indem Sie diese Befehle im Terminal ausführen.
  1. react-native -v : 0.47.1
  2. node -v :8.2.1
  3. npm -v :4.1.2
  4. yarn --version:

Geben Sie dann Folgendes an:

Schritte zum Reproduzieren

(Schreiben Sie Ihre Schritte hier auf:)

1.Öffnen Sie die Eingabeaufforderung im Administratormodus
2.Befehl ausführen: cd
3.Run-Befehl: React-native init
4.Befehl ausführen: cd
5.Run-Befehl: Reagieren-natives Run-Android
Dadurch wird der Paketserver automatisch auf Port 8081 ausgeführt. Ich kann jedoch nicht über den Browser auf dem Computer und dem Mobiltelefon auf den Paketserver zugreifen.
Ich habe versucht, http://:port/index.android.js
http://localhost :port
http://127.0.0.1 :port

=> Ich habe sowohl auf dem Handy als auch auf dem Emulator den roten Bildschirm mit der folgenden Meldung erhalten:
Ich habe versucht, das Projekt auf einem echten Gerät und einem Emulator auszuführen. Auf beiden habe ich die Fehlermeldung erhalten: „Das Skript aus den Assets ‚index.android.bundle‘ kann nicht geladen werden.

screenshot-1502041340496
screenshot-1502041361543
screenshot-1502041433294

Beim erneuten Laden erhalte ich die Fehlermeldung: "Verbindung zum Entwicklungsserver konnte nicht hergestellt werden."

Dann habe ich die Host- und Portnummer auf beiden Entwicklungseinstellungen eingestellt und die Fehlermeldung "Verbindung zum Entwicklungsserver konnte nicht hergestellt werden" erhalten.

Erwartetes Verhalten

Es wird erwartet, dass das Projekt auf Emulator und Telefon ohne Fehler ausgeführt wird.

Aber stattdessen habe ich den Fehler bekommen und ich habe es viele Male versucht und ich bekomme den gleichen Fehler wiederholt und im gleichen Muster.

Reproduzierbare Demo

(Fügen Sie den Link zu einem Beispielprojekt und genaue Anweisungen ein, um das Problem zu reproduzieren.)

Ran Commands Locked

Hilfreichster Kommentar

Versuchen Sie zu laufen:
adb reverse tcp:8081 tcp:8081
an Ihrer Eingabeaufforderung und führen Sie Ihr Projekt danach erneut aus.

Alle 139 Kommentare

Immer noch ein Problem mit:
reagieren 16.0.0-alpha.6
RN 0.44.3
Knoten 8.2.1
npm 5.3.0
XCode 8.3.3
iOS 10.3-Simulator

Muss ich also an früheren Versionen davon arbeiten?

Ich treffe das und kann damit nicht umgehen....

etwas falsch mit der neuesten Version?

Läuft der Packager? Sie sollten es sehen, wenn Sie react-native run-android ausführen. Sie können es auch selbst mit react-native start starten. Ich würde gerne herausfinden, ob das Problem hier darin besteht, dass der Packager überhaupt nicht startet.

Ja, der Packager läuft. Wenn ich den Befehl „react-native run-android“ ausführe, wird das Fenster „node js“ geöffnet, das besagt, dass der Packager auf 8081 ausgeführt wird, und „Loading Dependency Graph. Done“
Aber wenn ich „ localhost:8081/index.android.js “ im Systembrowser versuche, sehe ich den Fehler „Diese Seite kann nicht erreicht werden“.

Aber wenn ich eine normale Nodejs-API erstelle und sie im Browser teste, wird sie erfolgreich geöffnet.

Ich habe das gleiche Problem. iOS-Simulator funktioniert gut, übrigens

Immer wenn ich versuche, ein neues Projekt in RN zu erstellen, ist es, als ob ich jedes Mal auf eine Wand aus neuen Fehlern stoße.
Nächsten Monat nochmal versuchen, schätze ich...

gleicher Fehler. jemand löst es?

Versuchen Sie zu laufen:
adb reverse tcp:8081 tcp:8081
an Ihrer Eingabeaufforderung und führen Sie Ihr Projekt danach erneut aus.

@ashafizullah : Das habe ich auch versucht; aber immer noch kein Glück.

Tritt bei meinem Gerät auch auf.

Ich habe USB angeschlossen, ADB umgekehrt und Packager läuft.

Wenn Sie den folgenden Link im Browser des Geräts öffnen, wird das Bundle erfolgreich geladen:

http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false

Ich vermute also, dass im Java-Code selbst etwas nicht stimmt.

gibt es dazu eine lösung? Auch ich stecke hier fest. Auf IOS-Projekt funktioniert perfekt

Ich habe das gleiche Problem gesehen, und das alles, weil die Android-App diese Berechtigung nicht hat:

<uses-permission android:name="android.permission.INTERNET" />

Stellen Sie also sicher, dass Ihr Android-Code von Ihrer App aus auf die Remote-URL zugreifen kann.

Ich habe das gleiche Problem kann das niemand lösen?

Ich stehe auch vor dem gleichen Problem, wenn jemand die Lösung findet, bitte posten. Danke.

Ich habe das gleiche Problem, ich mache adb reserviert tcp:8081 tcp:8081 und stelle dann sicher, dass der gleiche Netzwerkcomputer und das gleiche Handy vorhanden sind, und ich mache die Entwicklungseinstellungen IP:8081, konnte aber keine Verbindung zum Entwicklungsserver herstellen, der dieses Problem gelöst hat, sehr danke Sie

Hallo Leute. Ich habe console.dir() in React-Native verwendet und bekomme dieses Verhalten. Und ich denke, dass es normal ist, weil console.dir() eine browser.window-Funktion ist und kein Browser in React-native ist. Nach dem Entfernen von console.dir() hat meine App funktioniert.

Ich habe das gleiche Problem auf einem Mac, gibt es Neuigkeiten?

Ich habe das gleiche Problem beim Gerätetest.

Android 4.1.2

Hallo. Leute, die eine Android-Version unter 5.0 haben, haben Sie versucht, eine WLAN-Verbindung anstelle von USB zu verwenden? Meine App startet normal auf Android 4.3 (Huawei Mediapad T1 8.0), nachdem sie über WLAN verbunden wurde

hatte dieses Problem, für mich stellte sich heraus, dass es sich um Port 8081 handelte, der von postgresSQL verwendet wurde

Ich habe heute das gleiche Problem.
Android 4.4.2 und 6.

Auch hier das gleiche Problem. Passiert jedes Mal, wenn ich meinen Mac nach einer kurzen Ruhezeit wieder öffne. Hat das jemand gelöst?
adb reverse tcp:8081 tcp:8081 - das scheint bei mir nicht zu funktionieren

screen shot 2017-10-17 at 8 20 03 am

Mein Fehler wurde behoben, indem ich die Inotify-Limits geändert habe.
Dieser Link half https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

das gleiche Problem, hilf mir

Ich habe auch das gleiche Problem beim Versuch, es von localhost auszuführen. Es funktioniert im Browser und auf dem Emulator, aber nicht auf dem physischen Gerät

Dasselbe Problem hier für Android, sowohl vom Gerät als auch vom Emulator. Scheinbar kann keine Verbindung zum Packager hergestellt werden. Doing the "adb reverse ..." für physisches Gerät. Wird auch auf einem benutzerdefinierten Port ausgeführt, indem Sie "react-native start --port 8088" ausführen und dann die IP- Adresse: 8088 in der Entwicklereinstellung in der App festlegen.

FRAGE: Gibt es eine Möglichkeit, die Verbindung zwischen der App (auf meinem Android-Gerät) und dem Packager, der auf einem Windows-PC ausgeführt wird, zu finden?

Das ist alles, was ich sehe, sind die Fehleranzeigen vom Typ "Verbindung nicht möglich" und keine Protokollmeldungen im Packager. \

UPDATE: Das Ausführen von "adb reverse --list" zeigte, dass ich zwei umgekehrte Einträge hatte. Es scheint, nachdem ich diese Dinge korrigiert habe, hat es funktioniert. Ich habe immer noch nur eine "weiße Seite", aber ich denke, das ist ein anderes Problem.

Gleiches Problem mit Android, iOS funktioniert...

wie kann das passieren
Ich bin auch auf das gleiche Problem gestoßen,
aber vorher funktioniert bei mir alles einwandfrei
Dann bekomme ich eine Endlosschleife, die meinen Desktop ziemlich verzögert macht
Also habe ich beschlossen, den Emulator und den Metro-Bundler, den ich von React-Native Start bekomme, zu schließen
Ich habe diesen Code unten ausprobiert, aber überhaupt kein Glück
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res

Stand vor dem gleichen Problem und verschwendete ein paar Tage dahinter. Es stellte sich heraus, dass der Standardport 8081 auf meinem Computer blockiert war. Den Port gemäß den Anweisungen hier geändert https://github.com/facebook/react-native/issues/10715 und jetzt funktioniert es.

Können Sie versuchen, diese URL im Webbrowser des Geräts zu öffnen?

http://localhost:8081/index.android.bundle?platform=android&dev=true&hot=false&minify=false

@kevinresol , wenn der Paketmanager sagt, dass er auf Port 8081 gestartet wurde und Sie nicht über den Browser darauf zugreifen können, wird der Port höchstwahrscheinlich von Ihrer Firewall blockiert. Versuchen Sie einfach, den Standardport zu ändern, oder sehen Sie, ob Sie den Port öffnen können.

Wie in meinem vorherigen Beitrag erwähnt, kann ich über den Gerätebrowser auf das Bundle zugreifen.

Ich habe genau das gleiche Problem wie @kevinresol. Ich kann das Bundle im Browser sehen, aber der Fehler bleibt bestehen. Ich bin auf einem Emulator, aber ich habe immer noch adb reverse versucht, aber kein Glück.

@bruno02100 Wenn Sie Windows verwenden und über WLAN zugreifen, versuchen Sie, Ihre Firewall zu deaktivieren. Sehen Sie, ob das das Problem löst.

@jerrykurian Ich bin auf einem Mac, auf dem der Android-Emulator läuft. Meine Firewall ist bereits ausgeschaltet. Es ist wirklich seltsam.

Nach der Konfiguration Debug server host & port for device bis 192.168.x.x:8081 in Dev Settings (Sharing des Telefons, es öffnet sich das Menü)
Es ist Arbeit für mich

PS: Es muss KEIN Bundle manuell erstellt werden, es wird automatisch erstellt, wenn die Verbindung erfolgreich hergestellt wurde

Ich denke, dass jedes WLAN-Problem oder jede WLAN-Lösung kein Thema ist. OP sprach über die Verbindung zu localhost über USB mit adb reverse

Mir ist aufgefallen, dass dieser Fehler erst auftritt, wenn der Emulator einige Zeit läuft. Jedes Mal, wenn dieser Fehler auftritt, starte ich einfach meinen Emulator neu und führe React-Native Run-Android aus. Es ist wirklich ärgerlich, aber ich habe nicht viel Zeit, mich darum zu kümmern, also muss es reichen.

Ich kann mich nach dem Build über Android Studios mit dem Entwicklungsserver verbinden, aber wenn ich den Code aktualisiere, wenn ich den Code bearbeite, kann mein Gerät oder Emulator keine Verbindung zum Server herstellen.

Meine Abhängigkeiten
"reagieren": "16.0.0",
"react-native": "0.50.4",

Ich kann bestätigen, dass die Lösung von @xlebenny zum manuellen Festlegen von Debug-Server-Host und -Port auf dem Gerät bei einem frisch ausgeworfenen CRNA-Projekt für mich funktioniert hat.

Schritt für Schritt zum Auswerfen und Ausführen einer CRNA auf Android

Im Terminal:

  1. create-react-native-app myApp
  2. cd myApp
  3. yarn run eject (Ich habe die Standardoptionen "reguläres React Native-Projekt" verwendet)
  4. react-native run-android

(Jetzt sollte die App kompiliert und auf dem Telefon installiert werden)

Am Telefon:

  1. Führen Sie die App aus (erwarten Sie, dass der rote Fehlerbildschirm angezeigt wird! - Klicken Sie unten links auf die Schaltfläche Verwerfen)
  2. Schütteln Sie das Telefon und wählen Sie Dev Settings
  3. Wählen Sie den Debug-Server-Host und -Port für das Gerät und stellen Sie ihn auf 192.168.xx:8081 ein (machen Sie es natürlich zu Ihrer tatsächlichen LAN-IP).
  4. Starten Sie die App auf dem Telefon neu und Sie sollten oben einen grünen Balken sehen "Loading from 192.168.xx:8081..."
  5. Sie sollten auch eine Aktion "Bündelung index.js " im Metro Bundler sehen (die beim Ausführen react-native run-android geöffnet wurde).
  6. Nachdem das Bundle fertig ist, sollte die App auf Ihrem Android-Gerät laufen!

Live Reload (wenn sich Quelldateien ändern) ist weiterhin möglich – schütteln Sie einfach das Telefon und tippen Sie auf „Live Reload aktivieren“.

@ashafizullah könnten Sie erklären, wie dieser Befehl das Problem gelöst hat. Danke

@plong0 hat es für mich gelöst!

Wie von @bruno02100 gezeigt , scheint dieser Fehler aufzutreten, wenn das Gerät über einen längeren Zeitraum geöffnet wird. Das Deaktivieren des Schnellstarts in der Emulatoreinstellung hat es für mich gelöst 👍

Geben Sie adb shell ein und sehen Sie, ob es auf Ihrem lokalen Server lauscht? Richten Sie die IP und den Port des Servers in den Entwicklereinstellungen ein. Das sollte behoben werden.

@plong0 danke für die Hilfe, aber es hat mir nicht geholfen.
Ich kann meine App nicht auf einem Android-Gerät mit MAC ausführen.

@ramintagizade - wie überprüfe ich, ob die App auf meinem lokalen Server lauscht? wie lautet der befehl:
adb shell [command] ?

Ja, ADB-Shell und Netstat.

basierend auf diesem http://facebook.github.io/react-native/docs/running-on-device.html

Greifen Sie von Ihrem Browser aus auf Ihre lokale IP-Adresse (z. B. http://192.168.43.188:8081/) zu und vergewissern Sie sich, dass sie angezeigt wird

React Native Packager läuft.
Dokumentation besuchen

Greifen Sie dann auf die Entwicklereinstellungen in Ihrem Emulator zu:
dev-settings

Für Mac-Benutzer können Sie die folgenden Schritte ausführen:
Schritt 1: Führen Sie „adb reverse tcp:8081 tcp:8081 “ aus
Schritt 2: Drücken Sie "Befehl m"
Schritt 3: Drücken Sie auf „Dev Settings“
Schritt 4: Drücken Sie „Debug server host & port for device“
Schritt 5: Geben Sie im Popup-Fenster „10.0.2.2:${port_id}“ im Abschnitt „port_id“ ein und verwenden Sie den Port, auf dem Sie Ihre Anwendung ausführen.
Schritt 6: Führen Sie nun „react-native run-android“ aus

Wenn Sie versuchen, die App auf Ihrem physischen Android-Gerät über WLAN mit einem Windows-Computer zu debuggen, kann das Gerät möglicherweise nicht auf den Port Ihres PCs oder Laptops zugreifen.
Sie müssen den Port zugänglich machen. Dies umfasst zwei Schritte:

1. Erstellen Sie zuerst eine Regel in der Firewall. Befolgen Sie dazu die folgenden Schritte:

```
Ausführen-Dialog öffnen
-geben Sie wf.msc ein
-Klicken Sie auf eingehende Regeln
-Klicken Sie auf der rechten Seite auf neue Regel
-Wählen Sie den Port aus dem Popup-Menü und klicken Sie auf „Weiter“.
- TCP-Port und bestimmte lokale Ports auswählen und die Portnummer wie 8081 (Standard) eingeben
- Erlaube die Verbindung
-Wählen Sie alle im Profilbereich aus
-Geben Sie einen geeigneten Namen und eine Beschreibung
-Klicken Sie auf Fertig

  1. Sie müssen Ihren PC von außen zugänglich machen, dazu gehen Sie wie folgt vor:
    -Öffnen Sie das Netzwerk- und Freigabecenter über die Systemsteuerung
    -Adapter Einstellungen ändern
    - Wählen Sie Ihr WLAN-Netzwerk aus
    -Rechtsklick, Eigenschaften
    -Klicken Sie auf die Registerkarte "Teilen".
    - Aktivieren Sie alle Kontrollkästchen

Sie können loslegen, versuchen Sie jetzt, React-Native Run-Android auszuführen.

Hatte ein ähnliches Problem, obwohl ich später feststellte, dass mein emuliertes Gerät (Android) überhaupt keine Internet- (oder Netzwerk-) Verbindung hatte. Es hatte überhaupt kein WiFi- oder LTE-Symbol. Ein Neustart des Emulators löste das Problem nicht, aber das Versetzen in den Flugzeugmodus und das erneute Ausschalten des Flugzeugmodus löste es. Könnte in meinem Fall ein allgemeiner Android-Fehler sein, der die Netzwerkverbindung verliert.

Wir sind auf dieses Problem gestoßen. Um dies zu beheben, ist die Lösung unten einfach.

  1. Brechen Sie den aktuellen Prozess von „react-native run-android“ mit STRG + C ab
    oder CMD + C
  2. Schließen Sie die geöffnete Befehlszeile des Metro Bundler-Fensters
    automatisch.
  3. Führen Sie den Befehl erneut aus, „react-native run-android“.

Grundsätzlich weist dieser Fehler darauf hin, dass Ihr aktueller Build aus Gründen wie Codeproblem oder Abhängigkeitsproblem fehlgeschlagen ist.

Klicken Sie hier für weitere Details

Ich bin mir nicht sicher, was mein Problem mit Android-Emulatoren unter macOS verursacht hat. Vielleicht neue Android AVDs einrichten oder verschiedene Android Studio-Updates installieren?

Dieser Befehl hing:
watchman watch-del-all

Das hat das Problem bei mir behoben:
````
brauen Watchman deinstallieren
Wächter brauen installieren

Und nur um sicherzustellen, dass der Wächter nicht hängt

Wächter Watch-del-all
````

Ich konnte dieses Problem lösen, indem ich den Emulator endlich neu startete.

Endlich habe ich mein Problem gefunden.
In meinem Fall war es für meine Emulator-Proxy-Einstellung.
Gehen Sie einfach zu den Emulatoreinstellungen und stellen Sie keinen Proxy ein.

Hoffe es kann helfen

Hallo zusammen,
Ich habe das gleiche Problem festgestellt, als ich in der Windows-Umgebung ausgeführt und mit dem Android-Simulator simuliert habe.
Nach einigem Versuch und Irrtum habe ich die Lösung wie folgt gefunden:

1>> Ändern Sie den Standardport in "node_modules\react-native\local-cliserverserver.js":

process.env.RCT_METRO_PORT || 8081

zu

Standard: process.env.RCT_METRO_PORT || 9088

wenn der Port blockiert oder an eine andere Anwendung vergeben wurde.
Hinweis : Sie können eine beliebige Portnummer wählen, ich habe 9088 gewählt
2>> Führen Sie den Befehl „react-native run-android --port 9088“ aus (geben Sie hier Ihre Portnummer ein). Dieser Port wird an das laufende adb gesendet, sodass sowohl Server als auch adb denselben Port haben.
3>> Drücken Sie jetzt im Android Studio-Simulator Strg+m, um zu „ Dev Setting “ zu gehen, wählen Sie dann Debug Server Port & Host für Device , stellen Sie „ localhost:9088 “ ein.
4>> Öffnen Sie die Entwicklerkonsole in Chrome mit der URL http://localhost :9088/debugger-ui/

Jetzt beginnt es mit dem Laden der Änderungen, die Sie in Ihrer Anwendung vornehmen.

Viel Spaß beim Programmieren :)

Danke, dass du das gepostet hast! Anscheinend verwenden Sie nicht die neueste Version von React Native, v0.53.0, die im Januar 2018 veröffentlicht wurde. Können Sie sicherstellen, dass dieses Problem in der neuesten Version noch reproduziert werden kann?

Ich werde dies schließen, aber bitte zögern Sie nicht, ein neues Problem zu eröffnen, wenn Sie bestätigen können, dass dies immer noch ein Problem in v0.53.0 oder neuer ist.

Wie Sie beitragen können • Was Sie von Betreuern erwarten können

Ja, ich verwende "react-native": "0.53.0".

Dieses Problem trat jedoch auf, als ich den internen Unternehmensproxy verwendete. Möglicherweise sind einige Ports blockiert oder werden von Unternehmen verwendet. Also habe ich diesen Weg zur Lösung verwendet. Und hier gepostet, damit andere dieses Problem lösen können.

Dasselbe Problem auf einem echten Android-Gerät. Version 5.1.1

Öffnen Sie einfach die Eingabeaufforderung und gehen Sie zum Projektverzeichnis, geben Sie einfach „Garn“ ein und drücken Sie die Eingabetaste. Alles wird in Ordnung sein

@ashafizullah seine Lösung funktioniert!!!!

Ob es sich um einen Simulator oder ein echtes Gerät handelt, für Android gehen Sie einfach wie folgt vor:
image

@Alijaaan dasselbe Problem, das ich anscheinend hatte. Danke!

Die einzige Lösung, die ich gefunden habe, besteht darin, von Android Studio AVD Manager aus Ihren aktuellen Emulator zu entfernen und einen neuen hinzuzufügen. Alle beginnen wieder zu arbeiten.

Vielen Dank @Alijaaan
Es wurde die Proxy-Einstellung von Android Studio verwendet.
image
Ich habe das Häkchen bei "Android Studio-Proxy-Einstellung verwenden" entfernt und dann "Kein Proxy" ausgewählt. Alles ist jetzt ok.

Der Kommentar von @esutton hat mein Problem gelöst.

BTW Watchman ist meine Lieblingssoftware. Ich war immer froh, meinen Tag für ein paar Stunden zu unterbrechen, um zufällige RN-Probleme aufzuspüren und zu erkennen, dass ich nur watchman watch-del-all ausführen muss. Jetzt hängt sogar dieser Befehl und wir müssen ihn gelegentlich neu installieren, ich bin ein noch glücklicherer Entwickler.

React-native run-android --port 9088 hat bei mir funktioniert. Danke @Louies89

Ich finde Lösung
1. Schalten Sie mein Antivirenprogramm aus
2Schließen Sie meine Firewall

Ich denke, es ist ein Problem mit den letzten Änderungen im Code, insbesondere wenn Sie eine Bibliothek eines Drittanbieters wie native-base verwenden. Was ich getan habe, ging ein paar Schritte zurück Strg + z , deinstalliere die App aus dem Emulator und starte sie neu. dann React-Native Run-Android , und alles funktioniert! Vielleicht hat es etwas mit dem Caching des Emulators zu tun

@pinchez254 stimme dir zu. Erster Lauf immer ok.

Bitte starten Sie den npm-Server mit dem Befehl npm start

Hallo, ich habe meine PC-IP-Adresse in die Dev-Einstellung (192.168.1.103:8081) eingegeben und eine eingehende Regel in der Firewall für den Zugriff auf den 8081-TCP-Port erstellt, bekomme aber diesen Fehler:
"could not connect to development serve"
AUCH
Wenn Sie im Browser "http://localhost:8081/index.delta?platform=android&dev=true&minify=false" , wurde der Build gestartet und erfolgreich abgeschlossen!

Bei mir läuft:

  1. adb reverse tcp:8081 tcp:8081
  2. react-native start --reset-cache
  3. react-native run-android

hat es geschafft

Ich musste zwei Terminals öffnen.
Erster Lauf
sudo npm start
Nach Lauf
react-native run-ios

  1. Stellen Sie sicher, dass sich Ihr Laptop und Ihr Telefon im selben Wi-Fi-Netzwerk befinden.
  2. Gehen Sie über die Shell zu Ihrem Projektordner. Führen Sie dann react-native run-android , react-native start --port=8088 aus
  3. Öffnen Sie Ihre React Native-App auf Ihrem Gerät.
  4. Öffnen Sie das In-App-Entwicklermenü. Drücken Sie [cmd] + [M] ([Strg] + [M] für Windows)]
  5. Gehen Sie zu Dev Settings → Debug server host für das Gerät.
  6. Geben Sie die IP-Adresse Ihres Rechners und den Port des lokalen Entwicklungsservers ein (z. B. 192.168.1.100:8088).
  7. Gehen Sie zurück zum Entwicklermenü und wählen Sie JS neu laden.

react-native run-android --port=8081 :)

Die einzige Möglichkeit, die ich lösen konnte, war - alle Verweise auf Port 8081 zu durchsuchen und in 9088 (nicht verwendet) zu ändern und mit -- Port 9088 zu beginnen. Außerdem die Dev-Einstellung auf Port 9088 geändert. Es gab nur wenige Verweise auf Port 8081 als Standard in node_module/react-native dir. Port 8081 wurde in meiner Umgebung vom Virenwächter verwendet.

Bei mir wurden keine Android Platform-Tools installiert. Also habe ich mit dem folgenden Befehl installiert.
Fass brauen Android-Plattform-Tools installieren

Danach funktionierte das Ausführen aus Android Studio oder der Kommandozeile mit *react-native run android *

Das Neustarten meines Mac hat es für mich gelöst, keine Ahnung warum

Erstens hilft mir diese Lösung, nachdem Sie sichergestellt haben, dass Sie sich in Ihrer Projektdatei befinden:
react-native start
höchstwahrscheinlich erhalten Sie einen Fehler mit dem Code ENOSPC
Verwenden Sie in diesem Fall diesen Code:
echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p
Danach führen Sie erneut react-native start aus, und Sie sollten höchstwahrscheinlich Ihren ENOSPC-Fehler behoben haben.
Als nächstes führen Sie einfach react-native run-android aus
Los geht's, es funktioniert für mich unter Linux mit Android-Emulator von Android Studio

Ich hatte diesen Fehler,
Ich habe damit eine Lösung gefunden.
Zuerst habe ich alle Knotenmodule gelöscht.
sudo rm -rf node_modules/
dann habe ich npm-Pakete erneut installiert
npm install

dann führe ich diesen Befehl aus, um zu überprüfen, ob die Reaktionspakete in Ordnung sind.

react-native start

Es zeigt mir, dass die Pakete in Ordnung sind, und dann führe ich den Android mit Root aus

react-native run-android --root

dann fand ich das funktioniert.

Beachten Sie auch, dass ab Android 9 Klartext-HTTP-Übertragungen (Nicht-HTTPS) standardmäßig verboten sind. Um die Verbindung zum Entwicklungsserver von einem Gerät aus zu ermöglichen, auf dem Ihre App ausgeführt wird, fügen Sie dieses Attribut zum Element application in der Datei _AndroidManifest.xml_ hinzu:

android:usesCleartextTraffic="true"

Weitere Informationen zu diesem Stackoverflow-Problem

Sie können testen, ob Ihr Gerät auf Ihren Entwicklungsserver zugreifen kann, indem Sie URLs in den nativen Webbrowser eingeben.

Leider schlucken die nativen React-Entwicklungstools den Grund für den Fehler, aber es zeigt sich, wenn Sie versuchen, Ihre eigene HTTP-Verbindung innerhalb der Ziel-App herzustellen, wo Sie einen hilfreichen Stack-Trace erhalten.

@delj Das ist bedauerlich, dass die reagierenden nativen Entwicklungstools den Grund für den Fehler verschlucken.

Tipp: Verwenden Sie manifestPlaceholders , um eine Veröffentlichung mit Android zu verhindern:usesCleartextTraffic= "true"

AndroidManifest.xml
````
android:name= ".MainApplication"

android:usesCleartextTraffic="${isDebug}"
    >

````

android/app/build.gradle

 buildTypes {
 debuggen {
 manifestPlaceholders = [isDebug:true]
 }
 Freisetzung {
 manifestPlaceholders = [isDebug:false]

        minifyEnabled enableProguardInReleaseBuilds
        proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro"
        signingConfig signingConfigs.release
    }
}

Ich hatte das gleiche Problem und was für mich unter Windows 10 funktioniert hat, ist buchstäblich nur das Öffnen der CMD als Administrator.

Ich habe immer noch dieses Problem. Können wir das wieder öffnen. Das ist absolut lächerlich, wie ist es ein "Erste Schritte"-Tutorial, wenn Sie die Schritte buchstabengetreu befolgen und es nicht startet. Ich habe buchstäblich Stunden mit diesem Fehler verbracht. Dem muss Facebook entgegenwirken. Entweder ist ihr Tutorial einfach nur REIN FALSCH oder bekannte Fehlerbehebungsfälle, auf die sie verlinken können.

Hier sind meine Schritte:

  1. Terminal 1: adb reverse tcp:8081 tcp:8081
  2. Klemme 1: npm-Start
  3. Reagiere auf natives Run-Android

Habe dieses Problem immer noch. Ich habe auch versucht, den Portwert hinzuzufügen, wenn ich Schritt 3 mache, aber das hat auch nicht funktioniert. Kann jemand bitte helfen.

Ich kann voll und ganz mitfühlen - wir haben gerade eine Stunde damit verbracht, dies auch zu beheben.

Dies funktioniert für den Simulator und ich denke, der gleiche Ansatz sollte für Ihr Gerät funktionieren

Hier gibt es ein paar Probleme, von denen das wichtigste die Klartexteinstellung ist. Bevor Sie irgendetwas tun, aktualisieren Sie Ihre App auf das neueste Android SDK oder diese Einstellungen funktionieren nicht. Um zu testen, ob Sie dieses Problem haben, fügen Sie diesen Code in eine Ihrer obersten Renderfunktionen ein. ZB <App

fetch('http://jofarnold.com')
  .then(res => res.text())
  .then(d => alert('ok'))
  .catch(e => {
    console.error(String(e));
});

Beachten Sie die http und nicht die https . Ja, meine Website ist nicht http. Aber im Moment bereue ich nichts!

Versuchen Sie es jetzt

fetch('https://httpbin.org')
  .then(res => res.text())
  .then(d => alert('ok'))
  .catch(e => {
    console.error(String(e));
});

Beachten Sie die http s .

Welcher schlägt fehl? Wenn beide fehlschlagen, haben Sie andere Probleme und ich kann Ihnen nicht helfen - aber versuchen Sie zu sehen, ob diese URLs in Chrome in Ihrem Simulator funktionieren, um auszuschließen, dass das Netzwerk nicht funktioniert. Wenn das erste fehlschlägt (es wird eine native Redbox geben), aber das zweite erfolgreich ist (es wird mit ok gewarnt), dann haben Sie die Android-Sicherheitseinstellungen nicht richtig eingerichtet. Also lass uns das tun.

Geben Sie zunächst Folgendes in android/.../AndroidManifest.xml im Abschnitt <application ein

<manifest
....
<application
... other settings
    android:usesCleartextTraffic="true"  <---------- this
    android:networkSecurityConfig="@xml/network_security_config" <------- and this
  >
   ... etc

Erstellen Sie dann eine Datei unter android/...res/xml/network_security_config.xml (möglicherweise müssen Sie das xml-Verzeichnis hinzufügen: Der Dateiname ist nichts Besonderes - er muss nur mit der obigen Referenz identisch sein) wie folgt :

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">jofarnold.com</domain>
    </domain-config>
</network-security-config>

Kompilieren Sie neu und stellen Sie sicher, dass Sie in einem Terminal react-native start --reset-cache (beachten Sie den Reset-Cache) und in einem anderen react-native run-android ausführen.

Wenn Sie jetzt die App laden, erhalten Sie ein OK-Popup. Gutes Zeug! Sie haben es geschafft, auf meine unsichere Website fetch zuzugreifen.

Jetzt müssen wir reagieren native aussortieren. Bei mir ist der Server auf 10.0.2.2 und der Debugger auf localhost oder so ähnlich (ich erinnere mich nicht; ich schreibe das teilweise aus dem Gedächtnis). So oder so sind sie unterschiedlich und so funktioniert es nicht.

Ändern Sie dazu jofarnold.com oben in localhost und gehen Sie dann in das Einstellungsmenü in der App (cmd-M auf dem Mac) > Dev Settings. Deaktivieren Sie "Use JS Deltas" (es funktioniert nicht gut) und setzen Sie unter Debugging den Serverhost und den Port auf localhost:8081

Ihre Sicherheitskonfigurationsdatei sollte folgendermaßen aussehen:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
    </domain-config>
</network-security-config>

Neu kompilieren, react-native start --reset-cache neu starten und Sie erhalten den grünen Balken oben in der App mit dem loading... oder was auch immer es ist. Im Terminal sollten Sie sehen, dass es mit Delta, Map und so weiter gebündelt ist.

Ich denke, Sie müssen das adb reverse -Zeug nicht machen. Es ist sowieso Teil der RN-Skripte.

Viel Glück!

Mein Problem war, dass mein Android-Emulator von WLAN und Daten getrennt war. Ich habe sie gerade eingeschaltet und sie läuft. Hoffe, es hilft, wenn jemand vor dem gleichen Problem steht.

image

Mein Problem war, dass mein Android-Emulator von WLAN und Daten getrennt war. Ich habe sie gerade eingeschaltet und sie läuft. Hoffe, es hilft, wenn jemand vor dem gleichen Problem steht.

Eine wichtige Sache, die ich zu Mateos Kommentar hinzufügen sollte; Wenn Sie Ihr MacBook schließen und in einem anderen WLAN-Netzwerk fortfahren, kann dies dazu führen, dass das „WLAN“ des Simulators fehlschlägt. Sie sollten den Simulator neu starten. Ich weiß, dass dies kein spezielles Problem für den Simulator ist, aber er hat eine gute SEO für dieses Thema, also hilft es hoffentlich jemand anderem, diesen Kommentar hier zu hinterlassen.

gelöst mit Android 5.0 oder höher, Fehler in Android 4..4

gelöst mit Android 5.0 oder höher, Fehler in Android 4..4

Ich stimme zu

Wenn Sie einen Android 9-Emulator ausführen, müssen Sie, wie von @delj angegeben, android:usesCleartextTraffic="true" in Ihrem Application-Tag in manifest.xml hinzufügen

Läuft der Packager? Sie sollten es sehen, wenn Sie react-native run-android ausführen. Sie können es auch selbst mit react-native start starten. Ich würde gerne herausfinden, ob das Problem hier darin besteht, dass der Packager überhaupt nicht startet.

Warum tritt dieses Problem auf?? Ich habe einen Mac mit OS 10.13.6 und davor startet der Server automatisch

Danke @JofBigHealth, ich habe es so gemacht, wie Sie es vorgeschlagen haben, und es funktioniert auf dem Emulator und dem Connect Real Device.
Aber ich habe Probleme mit der App, wenn ich sie aus dem Alphakanal herunterlade. hast du vorschläge zum debuggen?

@sheva007 Ich bin mir nicht sicher, was du mit "Alphakanal" meinst. Können Sie erläutern und auch genauer erläutern, welche Probleme Sie speziell haben?

@JofBigHealth Entschuldigung für die fehlenden Informationen.
UPDATE: jetzt klappt es, ich musste nur noch etwas warten, bis Google Play die aktualisierte Arbeitsversion für die Tester bereitstellt. Vielen Dank :)
Mein ursprüngliches Problem war, dass die App gut funktioniert < Android 9, aber es wird keinen Netzwerkanruf mit Android 9 tätigen. Wenn ich Ihre Lösung verwendet habe, funktioniert die App einschließlich Netzwerkanrufen wie erwartet.
aber als ich es bei Google Play Alpha Channel eingereicht habe. es führt keine Netzanrufe durch.

Das Umkehren der Ports hat bei mir funktioniert
wie von @ashafizullah vorgeschlagen

Das Schließen von Android Studio, das ich geöffnet hatte, löste das Problem für mich seltsamerweise. Unklar warum...

UPDATE: Für den Simulator ab dem Upgrade auf 0.57.7 habe ich es nicht für notwendig befunden, den adb Reverse-Proxy-Fix ​​durchzuführen oder den Port im Entwicklermenü zu ändern. Es ist standardmäßig so etwas wie 10.0.1.1:8080 (schätze aus dem Gedächtnis) und Just Works. Ich führe react-native start oder react-native start --reset-cache (falls erforderlich) aus und baue von Android Studio aus und es funktioniert einwandfrei. Wenn Sie es auf Debugging eingestellt haben, muss ein Debugger ausgeführt werden, und Sie müssen möglicherweise erneut von Android Studio aus bauen, da es manchmal nicht beim ersten Mal verbunden wird (aufgrund dessen, was ich für eine Race-Bedingung halte), aber ansonsten in Ordnung. Denken Sie nur daran, die Sicherheitseinstellungen im App-Manifest korrekt festzulegen

Gerät ist eine andere Sache.

Habe das gleiche Problem, wenn versucht wird, auf dem Gerät zu starten. Gibt es eine Lösung für das Gerät?

Ich habe das gleiche Problem. Bitte hilf mir.

Sie sollten einen Pfad zu Ihren Umgebungsvariablen hinzufügen ... "adb"-Pfad, den Sie unter C:Users\user\AppData\Local\Android\Sdk/platformtools finden

Dies hat bei mir unter Windows 10 funktioniert: (Nach dem Einrichten des Debug-Server-Hosts und -Ports..)
Ich habe meine Firewall-Einstellungen überprüft (Windows-Firewall>Eine App oder Funktion durch die Windows-Firewall zulassen) und festgestellt, dass es ZWEI Node.js-Apps gibt, aber eine davon nicht durch die Firewall zugelassen wird! Häkchen gesetzt und gespeichert, dann funktionierte alles wie es sollte!

Wenn Sie einen Android 9-Emulator ausführen, müssen Sie, wie von @delj angegeben, android:usesCleartextTraffic="true" in Ihrem Application-Tag in manifest.xml hinzufügen

Empfohlen

Gleicher Fehler.
windows7+android studio3.3.2.
Der Node-Server ist aktiv und ich kann 127.0.0.1 vom Simulator-Chrome aufrufen, aber die Awesome-App kann keine Verbindung zum Node-Server herstellen.
Ich habe auch android:usesCleartextTraffic="true" zur AndroidManisfesto.xml hinzugefügt, habe aber immer noch den Fehler erhalten

image
image
image
image
image
image
image
image

@aflext Hast du den Befehl adb reverse tcp:8081 tcp:8081 im roten Feld ausgeführt? Das funktioniert normalerweise.

@JofBigHealth Durch Ändern der URL von 127.0.0.1:8081 in localhost:8081 wurde es gelöst.

In meinem Fall war die Lösung „Debug JS Remotely“ deaktivieren/aktivieren.

@ashafizullah : Das habe ich auch versucht; aber immer noch kein Glück.

@ashafizullah ja, nein, es funktioniert auch bei mir.

kann es möglich sein, dieses Projekt über Windows auszuführen????

Mein Fehler wurde behoben, indem ich die Inotify-Limits geändert habe.
Dieser Link half https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

DAS FUNKTIONIERT!! DANKE VIELMALS!!

Mein Fehler wurde behoben, indem ich die Inotify-Limits geändert habe.
Dieser Link half https://github.com/guard/listen/wiki/Increasing-the-amount-of-inotify-watchers

Das hat bei mir funktioniert. Danke, Mann.

Ich habe android:usesCleartextTraffic="true" zu AndroidManifest.xml am Tag <application ... hinzugefügt und die App neu erstellt. Danach wurde es normal vom Dev-Server geladen.

Das ist mir passiert, weil ich den Debugger ausgeführt und mit einem anderen Gerät verbunden hatte. Der mit dem Debugger verbundene iOS-Simulator blockierte also die Verbindung des Android-Geräts mit dem Packager. Wenn Sie das Remote-Debugging auf dem iOS-Simulator stoppen, konnte das Android-Gerät eine Verbindung herstellen, oder Sie können auch auf dem Android-Gerät remote mit dem Debuggen beginnen.

Dies hat bei mir unter Windows 10 funktioniert: (Nach dem Einrichten des Debug-Server-Hosts und -Ports..)
Ich habe meine Firewall-Einstellungen überprüft (Windows-Firewall>Eine App oder Funktion durch die Windows-Firewall zulassen) und festgestellt, dass es ZWEI Node.js-Apps gibt, aber eine davon nicht durch die Firewall zugelassen wird! Häkchen gesetzt und gespeichert, dann funktionierte alles wie es sollte!

Das war auch mein Problem, danke!

Ich habe gelöst mit:

https://www.youtube.com/watch?v=XhiE0HEiYd4

https://stackoverflow.com/questions/44446523/unable-to-load-script-from-assets-index-android-bundle-on-windows

aber .... wenn ich die App im Emulator neu lade, stürzt sie erneut ab und zeigt die Meldung:
VERBINDUNG ZUM ENTWICKLUNGSSERVER KONNTE NICHT VERBUNDEN WERDEN

Also habe ich versucht, node.js und genymotion player.exe in der Firewall hinzuzufügen und alles neu zu starten (geny, reagieren), und es funktioniert wieder ...

Strg + Win cmd Befehlszeile ipconfig, um die IPV4-Adresse zu finden, meine ist 192.168.0.111, danach habe ich 192.168.0.111:8081 eingegeben
image
image

Erfolgreich gelöst!

Ich habe android:usesCleartextTraffic="true" zu AndroidManifest.xml am Tag <application ... hinzugefügt und die App neu erstellt. Danach wurde es normal vom Dev-Server geladen.

Dies hat es behoben. Danke vielmals.

Habe das gleiche Problem nur auf einem echten Android-Gerät.
Lösung:
1) Datei android/app/src/main/res/xml/network_security_config.xml hinzufügen

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">localhost</domain>
    </domain-config>
</network-security-config>

2) Fügen Sie eine Zeile zu android/app/src/main/AndroidManifest.xml hinzu

<application
    ...
    android:networkSecurityConfig="@xml/network_security_config"
    ...
>

Finden Sie das Heilmittel.
Dieses Problem hat mir geholfen, das Problem in den folgenden Schritten zu lösen.

  1. (im Projektverzeichnis) mkdir android/app/src/main/assets
  2. React-native Bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src /main/res
  3. Reagiere auf natives Run-Android

https://stackoverflow.com/questions/44446523/unable-to-load-script-from-assets-index-android-bundle-on-windows

Es hat bei mir funktioniert, nachdem ich adb reverse tcp:8081 tcp:8081 ausgeführt hatte. Früher wurde das Paketserverfenster geöffnet, aber nach dem Laden des Abhängigkeitsdiagramms geschah nichts. Botschaft.
Jetzt funktioniert alles gut, nachdem der oben genannte Befehl ausgeführt wurde.

Dies gilt gemäß der Netzwerksicherheitskonfiguration für Android 9.0+.
Nun, nachdem ich alle möglichen Lösungen ausprobiert hatte, die ich im Internet gefunden hatte, entschied ich mich, den nativen Android-Logcat manuell zu untersuchen. Selbst nachdem ich android:usesCleartextTraffic="true" hinzugefügt hatte, fand ich dies im Logcat:

06-25 02:32:34.561 32001 32001 E unknown:ReactNative: Caused by: java.net.UnknownServiceException: CLEARTEXT communication to 192.168.29.96 not permitted by network security policy

Also habe ich versucht, die Quelle meiner React-Native-App zu untersuchen. Ich habe festgestellt, dass es in der debug -Variante bereits eine Netzwerksicherheitskonfiguration gibt, die von React-Native-Jungs definiert wird und mit der main -Variante in Konflikt steht.

Dafür gibt es eine einfache Lösung.
Gehen Sie zu <app-src>/android/app/src/debug/res/xml/react_native_config.xml
Fügen Sie in der eine neue Zeile mit Ihrer eigenen IP-Adresse hinzumögen:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
  <domain-config cleartextTrafficPermitted="true">
    <domain includeSubdomains="false">localhost</domain>
    <domain includeSubdomains="false">10.0.2.2</domain>
    <domain includeSubdomains="false">10.0.3.2</domain>
    ***<domain includeSubdomains="false">192.168.29.96</domain>***
  </domain-config>
</network-security-config>

Da die lokale IP meines Computers (siehe ifconfig für Linux) 192.168.29.96 ist, habe ich die obige Zeile in * hinzugefügt

Dann müssen Sie für Android bereinigen und neu erstellen!

cd <app-src>/android
./gradlew clean
cd <app-src>
react-native run-android

Ich hoffe, das funktioniert für Sie.

Was ich getan habe: (Arbeite am Emulator Android Pie 9)

  1. Stellen Sie IP und Port auf Debug server host & port for device ein, indem Sie im Emulator auf Ctrl+M und Dev Setting klicken. Stellen Sie sicher, dass Sie den Host und Port mit Host und Port von Bundler festlegen (Standard: localhost:8081 ) und stellen Sie sicher, dass Ihr Port nicht durch andere Prozesse blockiert wird
  2. Führen Sie adb reverse tcp:8081 tcp:8081 im Home-Projektverzeichnis aus
  3. Fügen Sie android:usesCleartextTraffic="true" zum Knoten <application> in AndroidManifest.xml
  4. Nachdem Sie die drei oben genannten Punkte ausgeführt haben, starten Sie Ihr Projekt neu

@Eyesonly88 das hat das Problem für mich gelöst - danke.

Für Sie, die speziell mit diesem Problem konfrontiert sind, wenn Sie Ihre targetSdkVersion auf API 28 setzen.

Alles, was Sie tun müssen, ist, für Ihre Datei network_security_config die folgenden Zeilen unten hinzuzufügen:

    <base-config cleartextTrafficPermitted="true">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>

PS: In meinem Fall habe ich mehrere network_security_config-Dateien für jeden Flavor, da dies ein Debugging-Problem ist, reichte das Hinzufügen dieser Zeilen zur network_security_config -Datei im Debug-Flavor.

=============================================== =======================

Weitere Informationen zum Fehler unten:

Wenn wir zu https://developer.android.com/training/articles/security-config.html gehen, werden wir sehen, dass diese obigen Codezeilen die Standardsicherheitskonfiguration für Android API 24 bis API 27 sind. (Android 7.0 bis Android 8.1).
Dies bedeutet, dass für Android 9, API 28, bei dem ich mit dem Fehler konfrontiert war, die Standardkonfiguration geändert wurde.
Genauer gesagt ist die Standardkonfiguration für Android API 28:

    <base-config cleartextTrafficPermitted="false">
        <trust-anchors>
            <certificates src="system" />
        </trust-anchors>
    </base-config>

.
Aus diesem Grund hat die Verwendung der Standardkonfiguration für alte APIs für mich funktioniert.

Eine andere Sache, die am Anfang auch für mich funktioniert hat, war, targetSdkVersion auf API 27 zu setzen. Wenn Sie nicht auf API 28 laufen möchten, könnte dies auch für Sie funktionieren.

Wenn Sie einen Android 9-Emulator ausführen, müssen Sie, wie von @delj angegeben, android:usesCleartextTraffic="true" in Ihrem Application-Tag in manifest.xml hinzufügen

Empfohlen

Du hast meine Zeit gespart. Danke vielmals.

Leute, ich öffne das WLAN im Emulator und es hat bei mir funktioniert

Was mein Problem gelöst hat, war die Verwendung sudo yarn start anstelle von yarn start
Ich habe ein Skript in meiner package.json mit

{
...
"scripts":{
"start":"react-native start"
}
....
}

Wenn Sie einen Emulator wie xCode oder Android Studio verwenden, müssen Sie die Dev-Server-Adresse in den Einstellungen nicht mit Ihrer IP festlegen. Es wird automatisch eingestellt. Entfernen Sie es einfach und führen Sie die App erneut aus. Für mich geht das.

Wenn Sie einen Android 9-Emulator ausführen, müssen Sie, wie von @delj angegeben, android:usesCleartextTraffic="true" in Ihrem Application-Tag in manifest.xml hinzufügen

Empfohlen

Du hast meinen Tag gerettet

Was ich getan habe: (Arbeite am Emulator Android Pie 9)

  1. Stellen Sie IP und Port auf Debug server host & port for device ein, indem Sie im Emulator auf Ctrl+M und Dev Setting klicken. Stellen Sie sicher, dass Sie den Host und Port mit Host und Port von Bundler festlegen (Standard: localhost:8081 ) und stellen Sie sicher, dass Ihr Port nicht durch andere Prozesse blockiert wird
  2. Führen Sie adb reverse tcp:8081 tcp:8081 im Home-Projektverzeichnis aus
  3. Fügen Sie android:usesCleartextTraffic="true" zum Knoten <application> in AndroidManifest.xml
  4. Nachdem Sie die drei oben genannten Punkte ausgeführt haben, starten Sie Ihr Projekt neu

Ich kann bestätigen, dass die Lösung von @rafidamr die richtige ist. Aber ich war in einer Unternehmensumgebung, in der ich Port 8081 nicht verwenden konnte, also habe ich Metro Bundler einfach auf einen anderen Port umgestellt:

  • adb reverse tcp:8088 tcp:8088
  • react-native run-android --port 8088

Und natürlich auf den neuen Port in den Dev-Einstellungen des Emulators verwiesen.

Danke @camposbrunocampos 👏🏼 , ich habe target: Android 9.0 mit API level 28 verwendet.
network_security_config.xml aktualisiert und jetzt funktioniert der Emulator einwandfrei.

Ich hatte Probleme, es sowohl auf iOS als auch auf Android zu starten (versucht auf Android Studio, ohne Android Studio, mit Xcode und ohne Xcode). Ich habe alle oben genannten ausprobiert.

Also was NICHT geholfen hat war:

  • network_security_config.xml
  • adb umgekehrt
  • Änderung der IP-Adresse auf die IP des Servers.
  • etc..

Das einzige, was ich tun musste, ist Folgendes zu tun: sudo npm start aus dem nativen Projektverzeichnis reagieren. Scheint ein Berechtigungsproblem zu sein. (mit Mac)

@inspiraluna Das ist ein grundlegendes npm-Installationsproblem, Sie sollten Ihr Systemverzeichnis ändern.

fügen Sie android:usesCleartextTraffic= "true" zu Ihrer Anwendung im Manifest hinzu

....
android:usesCleartextTraffic="true"
android:theme="@style/AppTheme">

Für mich geht das.

Ich habe android:usesCleartextTraffic="true" zu AndroidManifest.xml am Tag <application ... hinzugefügt und die App neu erstellt. Danach wurde es normal vom Dev-Server geladen.

Dies hat das Problem auch für mich behoben, aber ich werde dem vorangehen, indem ich sage, dass ich diesen Fix anfänglich ausprobiert habe und er nicht funktioniert hat. Ich musste mit neuen Emulatoren neu anfangen, abd mehrmals beenden und neu starten, Android Studio neu installieren, Gradle aktualisieren usw.

@ Eyesonly88 Danke.. Es funktioniert für mich
Ich habe hinzugefügt
android:usesCleartextTraffic= „true“ zu AndroidManifest.xml

Ich ziele leider auf Android 4.0 ab und wenn ich adb reverse tcp:8081 tcp:8081 ausführe, bekomme ich einen Fehler

warn Failed to connect to development server using "adb reverse": Command failed: adb -s 192.168.66.103:5555 reverse tcp:8081 tcp:8081

So habe ich das Problem behoben, dass keine Entwicklertools im Emulator vorhanden waren:
Diese SO-Antwort schlägt vor, Ihre MainApplication.java -Datei zu überprüfen und BuildConfig.Debug aus der Methode getUseDeveloperSupport zu entfernen, also sieht es so aus:

        <strong i="11">@Override</strong>
        public boolean getUseDeveloperSupport() {
            // Return true to load JS from the packager.
            // If BuildConfig.DEBUG is false, assets will be loaded from assets folder.
            return true; // BuildConfig.DEBUG;
        }
War diese Seite hilfreich?
0 / 5 - 0 Bewertungen