Ich versuche derzeit, den ES6 React-Native-Webpack-Server auf einem Android-Emulator zum Laufen zu bringen. Der Unterschied ist , habe ich ein Upgrade meines package.json
und build.grade
Gebrauch reagiert 0.18.0
, und bin immer diese Fehlermeldung beim Booten. Soweit mir bekannt AppRegistry
ist, wird korrekt importiert. Selbst wenn ich den Code auskommentieren würde, tritt dieser Fehler immer noch auf. Dies funktioniert unter iOS ohne Probleme.
Was mache ich falsch?
BEARBEITEN: Nachdem ich andere Boilerplates ausprobiert habe, die 0.18.0 unterstützen, stoße ich immer noch auf dasselbe Problem.
android
react-native
webpack
Dustin
quelle
quelle
One of the sources for assign has an enumerable key on the prototype chain.
Antworten:
Ich habe gerade ein Upgrade auf React-Native durchgeführt, da es
0.18.1
heute Probleme mit Peer-Abhängigkeiten mit der0.19.0-rc
Vorabversion gibt.Zurück zu Ihrer Frage, was ich getan habe, war
cd android
sudo ./gradlew clean
(Weitere Informationen darüber, wie sauber funktioniert, finden Sie hier )dann zurück zum Arbeitsverzeichnis und ausführen
react-native run-android
Sie sollten Ihre npm auch nach diesem Upgrade neu starten.
hoffe das funktioniert bei dir.
quelle
ANDROID_HOME
auf meinem Weg befinde . Ich habe auch dielocal.properties
Datei mit hinzugefügtsdk.dir=
. Irgendwelche Ideen?sudo ./gradlew clean
, wäre es schön zu erwähnen, dass es sich um eine riesige Operation handelt, die anscheinend die gesamte Gradle-Distribution erneut herunterlädt und neu installiert./Users/karim/Library/Android/sdk
Ich hatte das gleiche Problem unter iOS und die Ursache für mich war, dass meine index.ios.js falsch war (weil ich eines der Beispiele kopiert und eingefügt habe, ohne auf den Inhalt zu achten ). Es endete mit einer Modul-Exportdeklaration
Anstelle des erwarteten
Sie könnten das gleiche Problem auf Android mit der index.android.js haben, denke ich.
quelle
Der Hauptgrund für dieses Problem könnte sein, dass Sie ein Plugin installiert und vergessen haben, es zu verknüpfen .
Versuche dies:
Führen Sie Ihre App erneut aus.
Hoffe das wird helfen. Bitte lassen Sie es mich in den Kommentaren wissen . Vielen Dank.
quelle
react-native link
ohne Paketnamen ist veraltet und wird in der nächsten Version entfernt.Ich habe dieses Problem nur durch Hinzufügen gelöst
Zu meinen index.js
Stellen Sie sicher, dass dies in Ihrer index.js vorhanden ist
quelle
Für mich bestand mein Problem darin, beim Bündeln die falsche Eintragsdatei zu platzieren .
Ich habe App.js als Eintragsdatei verwendet, daher konnte die App AppRegistry nicht finden
Richtig:
Falsch:
quelle
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
alles funktionierte, während stattdessen, wenn ich mit Fastlane veröffentlichte, die App mit diesem Fehler abstürzte:Module AppRegistry is not a registered callable module (calling runApplication)
In der build.gradle hatte ich wahrscheinlich Schmutz, eine falsche entryFile! Danke noch einmal!Hoffentlich kann dies jemandem Kopfschmerzen ersparen. Ich habe diesen Fehler nach dem Upgrade meiner reaktionsnativen Version erhalten. Verwirrenderweise erschien es nur auf der Android-Seite der Dinge.
Meine Dateistruktur enthält ein
index.ios.js
und einindex.android.js
. Beide enthalten den Code:Was ich tun musste
android/app/src/main/java/com/{projectName}/MainApplication.java
, war zu ändernindex
inindex.android
:Dann
app/build/build.gradle
ändert sich dieentryFile
vonindex.js
zuindex.android.js
quelle
Für mich hat ein Neustart des Computers das Problem behoben. (Mein Fehler war "module appRegistry ist kein registriertes aufrufbares Modul (Aufruf von runapplication) js engine: hermes")
Eine andere Top-Antwort, die hier fehlt und möglicherweise funktioniert hat, war nur das Beenden von Knotenprozessen:
killall -9 node
[ Modul AppRegistry ist kein registriertes aufrufbares Modul (Aufruf von runApplication) ]
quelle
Ich weiß nicht warum, aber wenn ich AppRegistry.registerComponent aus der Datei index.js, die in index.android.js enthalten ist, verschiebe, um sie direkt in index.android.js zu speichern, scheint es zu funktionieren.
quelle
Wenn Sie einige Beispiele verwenden, funktionieren diese möglicherweise nicht
Hier ist meine Version für die Bildlaufansicht
quelle
Ich habe es auf Genymotion deinstalliert. Führen Sie dann aus
react-native run-android
, um die App zu erstellen. Und es hat funktioniert. Versuchen Sie dies zuerst, bevorsudo ./gradlew clean
Sie es ausführen. Dadurch sparen Sie viel Zeit.quelle
Neustart Packager hat bei mir funktioniert. töte einfach den nativen Packager und starte ihn erneut.
quelle
Wenn Sie diesen Fehler in Windows mit Android haben
Öffne deinen Root-Verzeichnis-App-Ordner und gehe in den Android-Ordner.
Starten Sie Ihre App erneut React-Native Run-Android
bhooom es funktioniert
quelle
In meinem Fall zeigt mein
index.js
nur fälschlicherweise auf ein anderes js anstelle meines Launcher js, das nicht enthältAppRegistry.registerComponent()
.index.js
Stellen Sie also sicher, dass die Datei Ihr Punkt ist, um die Klasse zu registrieren.quelle
Mein Problem wurde behoben, indem meine inotify max_user_watches erhöht wurden:
quelle
Für mich war es ein Problem mit der reaktionsnativen Abhängigkeit von der nächsten Version des Reaktionspakets, während in meiner package.json die alte angegeben wurde. Das Aktualisieren meiner Reaktionsversion löste dieses Problem.
quelle
Für mich habe ich nur so mit React Native verlinkt: React-Native Link
quelle
npm start - --reset-cache
Wahrscheinlich wird der Port bereits verwendet. Ich habe ein ähnliches Problem, wenn ich zuerst reag-native run-android und dann npm start starte. Ich löse es folgendermaßen: Zuerst die ID des Prozesses abrufen, der in Port 8081 ausgeführt wird: sudo lsof -i: 8081
quelle
Ich habe diesen Fehler in Expo erhalten, weil ich den falschen Komponentennamen exportiert habe, z
quelle
Ich habe dieses Problem folgendermaßen gelöst:
quelle
Wenn Sie eine Windows-Maschine verwenden, müssen Sie diese ausführen
cd android
und./gradlew clean
dann ausführenreact-native run-android
quelle