Beim Versuch, ein reaktionsnatives Projekt unter Android 4.4.2 zu erstellen, wird dieser Fehlerbildschirm angezeigt
und konnte keinen Weg finden, es zu lösen. Ich habe versucht, den Packager neu zu starten, das Gerät wieder anzuschließen, sogar reaktionsnativ neu zu installieren und ein neues Projekt zu starten. Ab Version 6.0.0 funktioniert es einwandfrei.
android
react-native
Zygro
quelle
quelle
react-native run-android
? In diesem Fall wird der Fehler angezeigt, der seltsam ist, da im Debug-Modus das JS-Bundle afaik nicht benötigt werden sollte, da es eine Verbindung zum Paketserver herstellen soll.Antworten:
Eine mögliche Lösung hierfür besteht darin, dass Sie Ihre Anwendung höchstwahrscheinlich nicht zuerst bündeln, die folgenden Schritte ausführen und dann Ihre app-debug.apk auf Ihrem Gerät bereitstellen
(Wenn der Ordner
assets
nicht existiert, erstellen Sie ihn)Führen Sie dann vom Projektstamm aus
installiere die erstellte apk auf deinem Gerät vom Speicherort:
android/app/build/outputs/apk/app-debug.apk
Lassen Sie mich wissen, ob dies Ihr Problem behebt
EDIT :
Sie können es einfach als Skript in Ihre package.json einfügen, um es zu automatisieren. Ich glaube, es wird in kommenden Versionen von react-native behoben und vor dem Zusammenstellen der endgültigen APK ausgeführt, daher wird dies nicht benötigt (ich hoffe) auch)
stellen :
oder wie erwähnt das Curl-Äquivalent, aber in den meisten Fällen ist das Obige robuster
quelle
Ich bin auch auf dieses Problem gestoßen. Ich habe die App auf meinem Gerät zwangsweise beendet, dann eine andere Konsole geöffnet und ausgeführt
und dann habe ich die App wieder von meinem Gerät aus geöffnet und sie hat wieder funktioniert.
BEARBEITEN: Wenn Sie ein Android-Gerät über USB verwenden und den Netzstecker gezogen haben oder Ihr Computer in den Ruhezustand versetzt wurde, müssen Sie möglicherweise zuerst ausführen
quelle
react-native run-android
. Das Verwendenreact-native start
war für mich nie erforderlich, als ich es tatreact-native run-ios
adb reverse tcp:8081 tcp:8081
war an sich genug für mich. Danke vielmals!Habe gerade diesen Fehler bekommen. Folgendes habe ich getan, um das Problem zu beheben: Ich habe ausgewählt
Dismiss
, bin in das Entwicklermenü gegangen und habe dann ausgewähltDev Settings
,Debug server host & port for device
ich habe die IP-Adresse meines Computers und den Port hinzugefügt:192.168.0.xx:8xxx
Verwenden Sie die IP-Adresse Ihres Entwicklercomputers, die sich in Ihrem WLAN-Netzwerk befindet. Der Hafen ist in der Regel:8081
Sobald ich das getan habe, ging alles gut. Denken Sie auch daran, während Sie im Dev-Menü sind, auszuwählen,
Enable Live Reload
undDebug JS Remotely
es erleichtert Ihnen das Leben beim Debuggen erheblich.quelle
ifconfig
, dann finden Sie inet addr: xxx.xxx.xxx.xxx wobei xxx * Ihre Entwicklermaschine ipDas hat bei mir funktioniert (nachdem ich jede andere Lösung ausprobiert hatte, die ich gefunden habe ...):
Lauf
adb reverse tcp:8081 tcp:8081
hinein\Android\sdk\platform-tools
quelle
react-native run-android
versucht wird, diesen Befehl auszuführen und von der Windows-Umgebungsvariablen abhängtpath
, um denplatform-tools
Pfad zu enthalten .Ich habe dies auch erhalten, als ich zum ersten Mal mit React Native auf einem physischen Gerät angefangen habe. Wenn dies der Fall ist, müssen Sie einige zusätzliche Dinge tun, bevor Sie beginnen können. Sie müssen einige Informationen zu Ihrem Entwicklungscomputer in die 'Dev Settings' von React Native eingeben.
Wenn Sie den Fehler sehen, schütteln Sie Ihr Gerät . Ein Dialogfeld wird angezeigt. Die letzte Option ist "Dev Settings". Wählen Sie "Server-Hot & Port für Gerät debuggen" und geben Sie Ihre lokale IP-Adresse und den verwendeten Port (normalerweise 8081) ein.
Siehe den letzten Absatz von https://facebook.github.io/react-native/docs/running-on-device-android.html
quelle
Wenn keine der Lösungen für Sie funktioniert, versuchen Sie Folgendes:
Ich fand, dass mein
<root>/android/app/build/intermediates/assets/debug
Ordner leer war und liefcd android && ./gradlew assembleDebug
nicht die erforderlichen Dateien erstellt wurden, die später vom Javascript-Thread in unseren reaktionsfähigen nativen Apps verwendet werden.Ich habe den folgenden Befehl manuell ausgeführt, den der Befehl debug build idealerweise hätte erstellen sollen.
Nachdem ich diese Befehle ausgeführt hatte, fand ich zwei Bundle-Dateien in diesem Verzeichnis
<root>/android/app/build/intermediates/assets/debug
Und dann lief ich wieder
cd android && ./gradlew installDebug
meine App begann wieder zu funktionieren.Wird mehr debuggen und würde aktualisieren, was tatsächlich fehlschlägt.
quelle
Schließen Sie Ihr Gerät in einem separaten Terminal an den Computer an und führen Sie die folgenden Befehle aus:
Anwendungsterminal :
quelle
Es ist etwas zu spät, aber das funktioniert wirklich für mich.
react-native run-android
.react-native start
.Der erste Befehl wird
apk
für Android erstellt und auf Ihrem Gerät bereitgestellt, wenn es verbunden ist. Wenn Sie die App öffnen, wird ein fehlerhafter roter Bildschirm angezeigt. Führen Sie dann den zweiten Befehl aus, mit dem der Packager ausgeführt und das App-Bundle für Sie erstellt wird.quelle
Versuchen Sie diesen Befehl im Terminal und laden Sie ihn erneut. Es hat bei mir funktioniert
adb reverse tcp: 8081 tcp: 8081
quelle
siehe Ausgabe :
1.reaktiver Start
2.Klicken Sie
Reload(R,R)
auf Ihr Gerät.quelle
react-native run-android
quelle
restart the genymotion
? Ty vole.Ich hatte die gleiche Ausnahme auf dem Gerät Z3 Compact D5803 - 6.0.1
Ich habe die .buckconfig-Datei geöffnet und die Zeile geändert:
target = Google Inc.:Google APIs:23
zu
target = Google Inc.:Google APIs:24
Weil ich im SDK Manager gesehen habe, dass Android 6.X API Level 24 hat.
quelle
Für mich liegt es daran, dass
adb
es nicht in der warPATH
. Es befindet sich/Users/man/Library/Android/sdk/platform-tools
für mich, es ist vielleicht woanders für Sie, aber finden Sie es trotzdem und fügen Sie es Ihrem Pfad hinzu, um zu sehen, ob dies hilft.quelle
Da Sie Android <5.0 verwenden, können Sie die Standardmethode nicht verwenden.
adb reverse
Facebook hat jedoch eine offizielle Dokumentation hinzugefügt , um über Wi-Fi eine Verbindung zum Entwicklungsserver herzustellen , die Ihre Version unterstützen würde. Zitieren Sie die Anweisungen für MacOS, aber sie haben sie auch für Linux und Windows:quelle
Es hatte dieses Problem "zufällig" und ich brauchte einige Zeit, um zu erkennen, was in meinem Szenario falsch war.
Nachdem ich auf React-native-cli 2.0.1 aktualisiert habe, wurde eine Meldung im Protokoll ausgegeben, die mir half, die Grundursache zu ermitteln:
Nachdem ich einige Links recherchiert hatte, fand ich diesen:
JS-Server kann nicht erkannt werden
Da ich unter Windows bin, habe ich netstat ausgeführt und festgestellt, dass mein VLC-Player auch auf Port 8081 ausgeführt wurde, was das Problem verursacht hat. In meinem Fall würde es also nicht funktionieren, wenn ich den vlc-Server vor dem reaktionsnativen Server starten würde.
Dieselbe Protokollnachricht wurde in früheren Versionen von react-native-cli nicht ausgegeben, sodass sie unbemerkt fehlschlug.
TL, DR: Überprüfen Sie, ob am selben Port wie der Paketmanager etwas ausgeführt wird (standardmäßig 8081).
quelle
Mein Problem war, dass ich meine
AndroidManifest.xml
Datei durchgesehen und die Zeile entfernt hatte<uses-permission android:name="android.permission.INTERNET" />
weil meine App kein Internet braucht. Die reaktive native Debugging-App benötigt jedoch einen Internetzugang (um auf den Packager zuzugreifen). :) :)
quelle
Versuchen Sie, den Cache zu bereinigen
quelle
Bitte überprüfen Sie, ob beim Ausführen der folgende Fehler auftritt
react-native run-android
:adb server version (XX) doesn't match this client (XX); killing...
In diesem Fall stellen Sie sicher ,
/usr/local/opt/android-sdk/platform-tools/adb
und/usr/local/bin/adb
auf die gleiche spitzadb
In meinem Fall wurde auf eines hingewiesen
/Users/sd/Library/Android/sdk/platform-tools/adb
(Android SDK), aber auf ein anderes wurde verwiesen/usr/local/Caskroom/android-platform-tools/26.0.2/platform-tools/adb
(Homebrew)Und das Problem wurde behoben, nachdem beide darauf hingewiesen hatten
/Users/sd/Library/Android/sdk/platform-tools/adb
(Android SDK)quelle
Ich habe auch diesen Fehler bekommen, wirklich verwirrt. Weil alle Antworten nicht funktionieren. Kurz nachdem Sie adb zum Pfad hinzugefügt haben .
quelle
Für mich war die Seitensynchronisierung aktiviert und aktiv. Durch das sofortige Schließen wurde das Problem behoben. Es kann sich lohnen, diese oder eine andere Kommunikation zwischen PC und Gerät zu schließen
quelle
Am Ende musste ich den von mir verwendeten Port öffnen (standardmäßig 8081). Unter Linux können Sie Folgendes tun
Sie können testen, ob Sie dies tatsächlich tun müssen. Navigieren Sie einfach auf Ihrem Android-Gerät zu Ihrem Entwickler-Server in Chrome. Wenn es nicht reagiert, ist dies möglicherweise das, was Sie brauchen. Wenn es reagiert, hilft Ihnen das nicht weiter.
quelle
Mein Weg sind:
Danach in Ihrem Gerät mit:
Siehe in Console React-Native, es wird js Bundle-Daten abrufen.
quelle
Ich hatte das gleiche Problem. Als ich ein React Native-Projekt über die Create-React-Native-App AwesomeProject erstellt habe es in der Expo-App auf dem Telefon gut funktioniert. Danach wollte ich dieses Schnellstartprojekt für die Entwicklung meines Projekts verwenden und bekam den gleichen Fehler wie Sie.
Nach einigen Recherchen finde ich heraus, dass es besser ist, ein neues Projekt mit dem reaktionsnativen Init AwesomeProject zu starten (mit allen Einstellungen in den reaktionsnativen Dokumenten). Führen Sie dann diesen Befehl aus:
Das sollte das Problem mit dem Bundle beheben (--dev false zeigt keine Warnungen an)
Alles, was Sie tun müssen, damit die App auf Ihrem virtuellen / realen Gerät ausgeführt werden kann, ist:
Und es sollte gut funktionieren. Zumindest hat es bei mir funktioniert.
quelle
Für mich war das Problem, dass 'adb' nicht erkannt wurde - überprüfen Sie diese Antwort.
Um dies zu beheben, fügen Sie C: \ Users \ USERNAME \ AppData \ Local \ Android \ sdk \ platform-tools zu Umgebungsvariablen hinzu
quelle
Die meisten von uns sind zum ersten Mal mit diesem Problem konfrontiert, wenn wir anfangen, das native Projekt Nr. 1 zu reagieren.
Nur wenige einfache Schritte haben mein Problem gelöst:
Ich habe ein Beispielprojekt mit dem folgenden Befehl erstellt:
Lösung
Die Lösung ist , um Hilfe
local-cli\runAndroid\adb.js
zu findenadb.exe
, die gleiche Art und Weise wielocal-cli\runAndroid\runAndroid.js
:Finden Sie die Ersetzungsanweisung unter Projektname (was auch immer Sie angegeben haben).
\node_modules\react-native\local-cli\runAndroid
Ersetzen:
Durch:
Nachdem Sie den obigen Austausch durchgeführt haben, führen Sie einfach reag-native run-android in Ihrem cmd aus. Es wird apk bündeln und zunächst versuchen, js bundle lokal auf Ihrem Gerät zu installieren. (Erfolg gehabt)
quelle
Ich habe viele der Vorschläge oben / unten ausprobiert, aber letztendlich war das Problem, mit dem ich konfrontiert war, eine Berechtigung mit Watchman, die zuvor mit Homebrew installiert wurde. Wenn Sie beim Versuch, den Emulator zu verwenden, Ihre Terminalnachrichten anzeigen und Fehler in Bezug auf den Watchman sowie die Meldung "BatchedBridge konnte nicht abgerufen werden" auf Ihrem Emulator feststellen, gehen Sie wie folgt vor:
Gehen Sie in Ihr
/Users/<username>/Library/LaunchAgents
Verzeichnis und ändern Sie die Berechtigungseinstellungen, damit Ihr Benutzer lesen und schreiben kann. Dies ist unabhängig davon, ob Sie tatsächlich einecom.github.facebook.watchman.plist
Datei darin haben oder nicht .quelle
Ich fand, dass ich auch ein hinzufügen musste
um die Anwendung korrekt auszuführen.
quelle
Ich habe das gleiche Problem, aber es war ein dummer Fehler von mir ...
Von Android Studio aus habe ich
installDebug/installRelease
Gradle Script vonapp
Projet anstelle vonroot
Projet gestartet .quelle
Einfachster Weg!
Du bist gut zu gehen!
quelle
Starten Sie einfach Ihr System oder Ihr gesamtes Bundle neu und das Problem kann behoben sein.
quelle