Ich habe ein neues Projekt mit
react-native init Wevaha
erstellt, danach I Entschuldigung, es funktioniert richtig, dann habe ich die Beispiel-App basierend auf meinem. Voraussetzung erneut laufen funktioniert es aber das nächste Mal während Beim Ausführen der App bekomme ich den Fehler gerne' Application Wevaha has not been registered.This is either due to a require() error during intialization or failure to call
AppRegistry.registerComponent '
Es ist wahrscheinlich, dass Sie bereits einen anderen React Native Packager-Server für eine andere App ausführen oder dass der App-Name in AppDelegate.m und Ihre index.js nicht derselbe ist.
Schließen Sie alle Terminalfenster, überprüfen Sie den Wert von moduleName
und führen Sie das Projekt erneut aus.
Für uns bestand das Problem darin, dass der Name der registrierten App nicht mit dem Stammordner übereinstimmte. Wenn Ihr Stammordner /ChatApp
lautet, registrieren Sie Ihre App wie folgt:
AppRegistry.registerComponent('ChatApp', () => App);
Um zu erläutern, was Frau Oblador gesagt hatte, hatte ich immer noch dieses Problem, nachdem ich alle Terminalfenster geschlossen und alle anderen React Native-Prozesse getötet hatte. Was mir passiert ist, war der Wert der moduleName
in AppDelegate.m
(im Stammverzeichnis des XCode-Projekts) falsch. Ich verwende einen Build von Barton Hammonds Schneeflocke und versuchte, ihn von "Schneeflocke" in meine eigene umzubenennen, und ich habe diesen Wert übersehen und diesen Fehler erhalten.
In meinem Fall schaue ich mir die Portnummer des Packager an, in der er abhört . Dies ist das Ergebnis Ihres Aufrufs npm start
in Ihrem Stammprojektverzeichnis.
┌────────────────────────────────────────────── ──────────────────────────────┐ │ Packager auf Port 8081 ausführen. │ │ │ │ Lassen Sie diesen Packager während der Entwicklung von JS-Projekten laufen. Gefühl │ │ Sie können diese Registerkarte schließen und Ihre eigene Packager-Instanz ausführen, wenn Sie │ │ lieber. │ │ │ │ https://github.com/facebook/react-native │ │ │ └───────────────────────────────────────────────── ───────────────────────────┘
Dann überprüfe ich, welche Anwendung diesen Port über hört
lsof -i :8081
Ergebnis:
BEFEHL PID USER FD TYP GERÄTEGRÖSSE/OFF NODE NAME AwesomePr 8131 haxpor 9u IPv6 0x372bdab8e928e839 0t0 TCP localhost: 56484-> localhost: sunproxyadmin (SYN_SENT)
Nehmen Sie nun diese PID
-Nummer und erzwingen Sie das Töten über
kill -9 8131
Führen Sie Ihren Packager idealerweise erneut aus, und setzen Sie den Cache über npm start -- --reset-cache
zurück. Es sollte jetzt in Ordnung sein.
FYI:
reagieren: 15.4.2
, reaktionsnativ: 0.41.2
In meinem Fall ist dies auf die Groß- und Kleinschreibung des App-Namens in index.ios.js
zurückzuführen.
Es funktioniert, nachdem ich mich geändert habe
AppRegistry.registerComponent('AppleReactNative', () => App)
zu
AppRegistry.registerComponent('applereactnative', () => App)
Das Töten aller anderen Knotenprozesse funktionierte für mich Dh .
ps -ef | grep node
, um diese Prozesse zu finden und
pkill -f node
die Prozesse zu töten
Wenn dieses Problem auf einem Android-Gerät oder einem Android-Emulator auftritt,
abgesehen von index.js sollten Sie auch sicherstellen, dass der App-Name in der folgenden Datei index.Android.bundle
identisch ist:
die Sie unter diesem Pfad finden können: ~Android/app/src/main/assets/index.Android.bundle
Suchen Sie nach dem alten App-Namen und ersetzen Sie ihn durch den tatsächlichen Namen.
es hat für mich funktioniert, hoffe es hilft auch anderen.