wake-up-neo.com

React-Native: Die Anwendung wurde nicht registriert

Ich gehe gerade durch die React-Native-Tutorials. Ich habe mit dem Tutorial "Erste Schritte" angefangen, in dem ich ein neues reaktives Projekt erstellte und das Projekt erfolgreich auf meinem Gerät ausführen konnte.

Ich habe dann das Props-Tutorial gestartet, kopierte das Code-Snippet und versuchte, das Projekt erneut auszuführen. Die folgende Fehlermeldung wurde auf meinem Bildschirm angezeigt:

112
Adam

Ich vermute, es ist ein Fehler, der dadurch verursacht wurde, dass der Name des Projekts und Ihre registrierte Komponente nicht übereinstimmen.

Sie haben ein Projekt mit einem Namen begonnen, d. H.

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.

390
Slowyn

In den meisten Fällen besteht das Problem darin, dass Sie einen anderen react-native start-Server (d. H. React Native Packager-Server) haben, der entweder auf einem anderen Terminal oder auf einem anderen Tab von TMUX (wenn Sie TMUX verwenden) ausgeführt wird.

Sie müssen diesen Prozess finden und schließen, sodass nach der Ausführung von react-native run-ios beispielsweise ein neuer Packager-Server eingerichtet wird, der sich für diese bestimmte Anwendung registriert hat.

Finden Sie diesen Prozess einfach mit:

ps aux | grep react-native

finden Sie die Prozess-ID (PID) und beenden Sie den Packager-Prozess mit dem Befehl kill (z. B. kill -9 [PID]). Sie sollten die launchPackager.command-App in macOS finden, nicht sicher über die anderen Betriebssysteme.

Versuchen Sie dann erneut, den run-ios (oder Android) auszuführen. Sie sollten den neuen Pfad nach dem Ausführen des neuen Packager-Servers sehen können, z. B .:

Looking for JS files in
   /Users/afshin/Desktop/awesome-app 
35

MainActivity so ändern, 

@Override
protected String getMainComponentName() {
    return "Bananas"; // here
}
19

Zunächst müssen Sie Ihre Bewerbung starten:

react-native start

Dann müssen Sie Ihren Anwendungsnamen als erstes Argument von registerComponent festlegen.

Es funktioniert gut.

AppRegistry.registerComponent('YourProjectName', () => YourComponentName);
12
Rafael Ferraro

Meine Lösung ist der Name des Änderungsmoduls in "AppDelegate.m". 

von moduleName:@"AwesomeProject"

zu moduleName:@"YourNewProjectName"

9
user8637708

In meinem Fall gibt es diese Zeile in MainActivity.Java, die vermisst wurde, als ich react-native-rename cli (von NPM) verwendete

protected String getMainComponentName() {
    return "AwesomeApp";
}

Natürlich müssen Sie es in den Namen Ihrer App umbenennen.

5
xemasiv

Ich hatte das gleiche Problem und für mich war die Hauptursache, dass ich den Packager von einem anderen Reaktiver-Ordner (AwesomeApp) aus ausgeführt habe (reaktiver Start), während ich ein anderes Projekt in einem anderen Ordner erstellt habe.

Wenn Sie den Packager im Verzeichnis der neuen App ausführen, wurde das Problem behoben.

3
la5zl0

Bitte überprüfen Sie Ihre app.json-Datei im Projekt. Wenn es keine Zeile appKey gibt, müssen Sie es hinzufügen

{
  "expo": {
    "sdkVersion": "27.0.0",
    "appKey": "mydojo"
  },
  "name": "mydojo",
  "displayName": "mydojo"
}
3
mperk

Ich denke der Knotenserver läuft aus einem anderen Ordner. Also töte es und führe den aktuellen Ordner aus. 

Laufenden Knotenserver suchen: -  

lsof -i :8081

Beende laufenden Knotenserver: -

kill -9 <PID>

Z.B:-

kill -9 1653

Start des Knotenservers aus dem aktuellen ursprünglichen Ordner: -

react-native run-Android

2
Arshid KV

sie müssen es in index.Android.js/index.ios.js registrieren

so was:

'use strict';

import {
    AppRegistry
} from 'react-native';

import app from "./app";

AppRegistry.registerComponent('test', () => app);
1
linSir

Alle gegebenen Antworten haben für mich nicht funktioniert. 

Ich hatte einen anderen Knotenprozess in einem anderen Terminal, ich schloss das Befehlsterminal und alles funktionierte wie erwartet.

1
Khemraj

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.

z.B. zünden Sie neues HelloWord an

1
Venkat

Das Problem wird auch angezeigt wenn Sie die App in index.js anders benannt haben, als Sie sie für das Android/ios-Paket angegeben haben ; Wahrscheinlich ist dies passiert, wenn Sie die App ausgeworfen haben. Stellen Sie daher sicher, dass beim Aufruf von AppRegistry.registerComponent('someappname', () => App) auch ein anderer Name für die nativen Pakete oder viceversa verwendet wird.

1
gavri

Nachdem ich alles oben Gelesene gelesen habe, habe ich festgestellt, dass es einen anderen Grund dafür geben könnte.

In meinem Fall:

reag-native-cli: 2.0.1

reaktionsnativ: 0.60.4

und folgende Struktur:

enter image description here

Zunächst muss beachtet werden, dass index.Android in Android Studio nicht aktualisiert wurde, wenn der Build von Metro Builder ausgeführt wird (Reactive-Native-Run-Android), sodass er manuell ausgeführt werden muss. Auch in Android Studio "liest" das nicht

app.json (standardmäßig zusammen mit index.js erstellt, die index.Android.js umbenannt haben):

 {
    "name": "authApp",
    "displayName": "authApp"
 }

und so das mag

(in meinem Fall)

import {authApp as appName} from './app.json';

weil Android studio nicht weiß, worauf sich authApp bezieht. Ich behebe im Moment, indem ich mich auf den App-Namen mit seinem String-Namen beziehe und diesen Import aus app.json nicht verwende:

AppRegistry.registerComponent('authApp', () => MyApp);
0
Carmine

Ich hatte das gleiche Problem ... Ich benutzte Windows zum Erstellen einer reaktiven App für Android und hatte den gleichen Fehler. Hier ist, was funktioniert hat.

  • Navigieren Sie zu dem OrdnerAndroidin Ihrem Stammverzeichnis.
  • Erstellen Sie eine Datei mit dem Namen:local.properties
  • Öffne es im Editor und schreibe: 

sdk.dir = C:\Benutzer\Benutzername\AppData\Local\Android\sdk

  • Ersetzen Sie USERNAME durch den Namen Ihres Computers.

Speichern und führen Sie die App normal aus. Das hat bei mir funktioniert.

0
Utsav Chawla

Anstatt den Namen in AppRegistry zu ändern,

Führen Sie reaktions-native Init-Bananen aus. Dadurch wird Reactor-Boilerplate-Code für das Bananenprojekt erstellt und AppRegistry.registerComponent zeigt automatisch auf Bananen

AppRegistry.registerComponent('Bananas', () => Bananas);
0
vipul srivastav

Ich habe herausgefunden, wo das Problem in meinem Fall lag (Windows 10 OS), aber es könnte auch in Linux helfen (Sie könnten es versuchen).

Wenn Sie in windows power Shell eine App (zum ersten Mal nach dem Start des PCs) ausführen möchten, indem Sie den folgenden Befehl ausführen,

react-native run-Android

Es startet einen node process/JS server in einem anderen console panel, und dieser Fehler tritt nicht auf. Wenn Sie jedoch eine andere App ausführen möchten, müssen Sie mussclose dieses bereitsJS server console panel ausführen. Führen Sie dann denselben Befehl für eine andere App aus power Shell aus. Dieser Befehl startet automatisch einen anderen new JS-Server für diese App, und Sie erhalten diesen Fehler nicht. 

Sie müssen nicht close und erneutpower Shell öffnen, um eine andere App auszuführen, Sie müssen closenode console ausführen, um eine andere App auszuführen.

Keine der Lösungen funktionierte für mich. Ich musste den folgenden Prozess beenden und rea-native run-Android laufen lassen und es funktionierte.

knoten ./local-cli/cli.js starten

0
G. Thabit