Ich gehe gerade die React-Native-Tutorials durch. Ich begann mit dem Tutorial Erste Schritte, in dem ich ein neues natives Reaktionsprojekt erstellte und es erfolgreich schaffte, das Projekt auf meinem Gerät auszuführen.
Ich habe dann das Requisiten-Tutorial gestartet , das Code-Snippet kopiert und versucht, das Projekt erneut auszuführen. Auf meinem Bildschirm wurde die folgende Fehlermeldung angezeigt:
Antworten:
Ich denke, es ist ein Fehler, der dadurch verursacht wird, dass der Name des Projekts und Ihre registrierte Komponente nicht übereinstimmen.
Sie haben ein Projekt mit einem Namen gestartet, dh
react-native init AwesomeApp
In Ihrer Datei index.ios.js registrieren Sie jedoch eine andere Komponente
AppRegistry.registerComponent('Bananas', () => Bananas);
Wenn es muss sein
AppRegistry.registerComponent('AwesomeApp', () => Bananas);
Versuch es zu reparieren.
quelle
moduleName:@"AwesemeApp"
Zeile in ihrer AppDelegate.m-Datei ändernIn den meisten
react-native start
Fällen besteht das Problem darin, dass ein anderer Server (z. B. React Native Packager) entweder auf einem anderen Terminal oder einer anderen Registerkarte von TMUX ausgeführt wird (wenn Sie TMUX verwenden).Sie müssen diesen Prozess finden und schließen, damit nach dem Ausführen
react-native run-ios
beispielsweise ein neuer Packager-Server eingerichtet wird, der für diese bestimmte Anwendung registriert ist.Finden Sie diesen Prozess einfach mit:
Suchen Sie die Prozess-ID (PID) und beenden Sie den Packager-Prozess mit dem
kill
Befehl (zkill -9 [PID]
. B. ). Sie sollten dielaunchPackager.command
App in macOS finden, nicht sicher über die anderen Betriebssysteme.Versuchen Sie dann erneut, das
run-ios
(oder Android) auszuführen . Sie sollten den neuen Pfad nach dem Ausführen des neuen Packager-Servers sehen können, z.quelle
react-native start --port <otherport>
, sollte ichreact-native run-<platform>
auf andere Weise rennen ?, Dankestart
Befehl den Packager-Server aus. Wenn Sie Ihre Anwendung bereits kompiliert haben, müssen Sie dies nicht tunrun-<platform>
.Ändern Sie
MainActivity
wie folgt :quelle
Meine Lösung besteht darin, den Modulnamen in "AppDelegate.m" zu ändern.
von
moduleName:@"AwesomeProject"
zu
moduleName:@"YourNewProjectName"
quelle
Zunächst müssen Sie Ihre Bewerbung starten:
Anschließend müssen Sie Ihren Anwendungsnamen als erstes Argument von registerComponent festlegen.
Es funktioniert gut.
quelle
Bitte überprüfen Sie Ihre app.json-Datei im Projekt. Wenn es keinen Zeilen-AppKey gibt, müssen Sie ihn hinzufügen
quelle
In meinem Fall gibt es diese Zeile in MainActivity.java, die bei der Verwendung von
react-native-rename
cli (von NPM) übersehen wurde.Natürlich musst du es in den Namen deiner App umbenennen.
quelle
Ich denke, der Knotenserver läuft von einem anderen Ordner. Also töte es und starte im aktuellen Ordner.
Suchen Sie den laufenden Knotenserver: -
lsof -i :8081
Beenden Sie den laufenden Knotenserver: -
kill -9 <PID>
Z.B:-
kill -9 1653
Starten Sie den Knotenserver vom aktuellen reaktiven nativen Ordner: -
react-native run-android
quelle
Ich hatte das gleiche Problem und für mich war die Hauptursache, dass ich den Packager aus einem anderen reaktionsnativen Ordner (AwesomeApp) ausgeführt habe (React-Native Start), während ich ein anderes Projekt in einem anderen Ordner erstellt habe.
Das Ausführen des Packagers aus dem Verzeichnis der neuen App hat das Problem behoben.
quelle
Dies kann auch daran liegen, dass der Name der Stammkomponente mit Kleinbuchstaben beginnt.
Korrigieren Sie es oder erstellen Sie das Projekt erneut mit einem PascalCase-Namen.
zB neues HelloWord entzünden
quelle
Alle gegebenen Antworten haben bei mir nicht funktioniert.
Ich hatte einen anderen Knotenprozess in einem anderen Terminal, ich schloss dieses Befehlsterminal und alles funktionierte wie erwartet.
quelle
Sie müssen registrieren es in index.android.js / index.ios.js
so was:
quelle
Ich habe dieses Problem behoben, indem ich Folgendes in der Datei app.json geändert habe. Es scheint, dass der Großbuchstabe diesen Fehler ausgelöst hat.
Von:
Zu:
quelle
Anstatt den Namen zu ändern
AppRegistry
,Führen Sie "React-Native Init Bananas" aus. Dadurch wird ein React Boilerplate-Code für das Bananas-Projekt erstellt und
AppRegistry.registerComponent
automatisch auf Bananen verwiesenquelle
Keine der Lösungen hat bei mir funktioniert. Ich musste den folgenden Prozess abbrechen und React-Native Run-Android erneut ausführen, und es funktionierte.
Knoten ./local-cli/cli.js starten
quelle
Ich hatte das gleiche Problem. Ich habe Windows zum Erstellen einer reaktionsfähigen nativen App für Android verwendet und hatte den gleichen Fehler. Folgendes hat funktioniert.
Speichern Sie die App und führen Sie sie normal aus. Das hat bei mir funktioniert.
quelle
Das Problem tritt auch auf, wenn Sie in index.js die App anders benannt haben als den Namen, den Sie für das Android / iOS-Paket angegeben haben . Wahrscheinlich ist dies passiert, als Sie die App ausgeworfen haben.
AppRegistry.registerComponent('someappname', () => App)
Stellen Sie daher sicher, dass beim Aufrufen somppppname auch für die nativen Pakete oder umgekehrt verwendet wird.quelle
Ich habe herausgefunden, wo das Problem in meinem Fall liegt (Windows 10-Betriebssystem), aber es könnte auch unter Linux helfen (Sie könnten es versuchen).
In
windows power shell
, wenn Sie eine Anwendung ( zum ersten Mal nach dem PC - Boot) ausgeführt werden sollen , indem Sie den folgenden Befehl ausführen,Es beginnt ein
node process/JS server
in einem anderenconsole panel
, und Sie stoßen nicht auf diesen Fehler. Aber, wenn Sie ausführen möchten eine andere App , Sie müssen müssen schließen , dass bereits ausgeführtJS server console panel
wird . Führen Sie dann denselben Befehl für eine andere App aus dem auspower shell
. Dieser Befehl startet automatisch einen neuen JS-Server für diese App, und dieser Fehler tritt nicht auf.Sie müssen nicht schließen und erneut öffnen,
power shell
um eine andere App auszuführen. Sie müssen schließennode console
, um eine andere App auszuführen.quelle
Nachdem ich alles oben Genannte gelesen habe, habe ich festgestellt, dass es einen anderen Grund dafür geben könnte.
In meinem Fall:
React-Native-Cli: 2.0.1
reaktionsnativ: 0,60,4
und folgende Struktur:
Zunächst muss beachtet werden, dass index.android in Android Studio nicht aktualisiert wird, wenn der Build von Metro Builder (React-Native Run-Android) ausgeführt wird, sodass er manuell ausgeführt werden muss. Auch im Android Studio "liest" man das nicht
app.json (standardmäßig zusammen mit index.js erstellt, das in index.android.js umbenannt wurde):
und so mag das
(in meinem Fall)
verursachen die Tatsache, dass Android Studio nicht weiß, worauf sich authApp bezieht. Ich behebe im Moment, dass ich mich auf den App-Namen mit seinem String-Namen beziehe und diesen Import aus app.json nicht verwende:
quelle
Das hat es für mich gelöst
Also meine
index.js
AkteUnd meine
package.json
Akte:quelle
Diese Lösung hat bei mir nach 2 Tagen Debugging funktioniert. Ändere das :
zu
quelle