React-Native: applicatie is niet geregistreerd fout

Ik ben momenteel bezig met de React-Native tutorials. Ik begon met de zelfstudie Aan de slag, waar ik een nieuw reactie-native project heb gemaakt en het project met succes op mijn apparaat heb kunnen uitvoeren.

Ik ben toen begonnen met de Props-tutorial, ik heb het codefragment gekopieerd en probeerde het project opnieuw uit te voeren en kreeg de volgende foutmelding op mijn scherm:


Antwoord 1, autoriteit 100%

Ik vermoed dat het een fout is die wordt veroorzaakt doordat de naam van het project en uw geregistreerde component niet overeenkomen.

Je hebt een project gestart met één naam, d.w.z.

react-native init AwesomeApp

Maar in uw index.ios.js-bestand registreert u een ander onderdeel

AppRegistry.registerComponent('Bananas', () => Bananas);

Wanneer het moetzijn

AppRegistry.registerComponent('AwesomeApp', () => Bananas);

Als de naam van je component overeenkomt, zorg er dan voor dat er geen ander reactie-native/node-proces in een andere terminal draait.


Antwoord 2, autoriteit 10%

Meestal is het probleem dat je een andere react-native start(dwz React Native Packager) server hebt die draait op een andere terminal of op een ander tabblad van TMUX (als je TMUX gebruikt).

Je moet dat proces vinden en sluiten, dus na het uitvoeren van bijvoorbeeld react-native run-ios, zal het een nieuwe packager-server tot stand brengen die zich voor die specifieke applicatie heeft geregistreerd.

Zoek dat proces gewoon op met:

ps aux | grep react-native

vind de proces-ID (PID) en stop het proces van de packager met behulp van de opdracht kill(bijv. kill -9 [PID]). Je zou de app launchPackager.commandin macOS moeten vinden, niet zeker over de andere besturingssystemen.

Probeer vervolgens de run-ios(of Android) opnieuw uit te voeren. U zou het nieuwe pad moeten kunnen zien nadat u de nieuwe packager-server heeft uitgevoerd, bijvoorbeeld:

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

Antwoord 3, autoriteit 9%

Wijzig MainActivityin android/app/src/main/java/com/your-package-name/MainActivity.javaals volgt,

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

Antwoord 4, autoriteit 9%

Mijn oplossing is het wijzigen van de modulenaam in “AppDelegate.m”

van
moduleName:@"AwesomeProject"

naar
moduleName:@"YourNewProjectName"


Antwoord 5, autoriteit 4%

Allereerst moet u uw aanvraag starten:

react-native start

Vervolgens moet u uw toepassingsnaam instellen als het eerste argument van registerComponent.

Het werkt prima.

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

Antwoord 6, autoriteit 2%

In mijn geval is er deze regel in MainActivity.java die werd gemist toen ik react-native-renamecli (van NPM)

gebruikte

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

Je moet het natuurlijk hernoemen naar de naam van je app.


Antwoord 7, autoriteit 2%

Controleer uw app.json-bestand in het project. als er geen regel appKey is, moet u deze toevoegen

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

Antwoord 8

Ik heb dit opgelost door het volgende in het app.json-bestand te wijzigen. Het lijkt erop dat de hoofdletter deze fout veroorzaakte.

Van:

{
  "name": "Nameofmyapp",
  ...
}

Aan:

{
  "name": "Nameofmyapp",
  ...
}

Antwoord 9

Ik denk dat de node-server vanuit een andere map draait. Dus dood het en voer het uit in de huidige map.

Zoek een draaiende node-server:-

lsof -i :8081

Dood draaiende node-server:-

kill -9 <PID>

Bijvoorbeeld:-

kill -9 1653

Start node-server vanuit de huidige native react-map:-

react-native run-android


Antwoord 10

Ik had hetzelfde probleem en voor mij was de hoofdoorzaak dat ik de packager uitvoerde (react-native start) vanuit een andere react-native map (AwesomeApp), terwijl ik een ander project in een andere map maakte.

Het uitvoeren van de packager vanuit de map van de nieuwe app loste het op.


Antwoord 11

In index.js heb je de volgende code:-

import {name as appName} from './app.json';
AppRegistry.registerComponent(appName, () => MyApp);

Dus als in app.json de naam is gedefinieerd als “AwesomeProject”, zorg er dan voor dat dit hetzelfde is als het volgende:-

  1. modulenaam in ios/projectName/AppDelegate.m :-
    moduleName:@"AwesomeProject"

  2. componentnaam in android/app/src/main/java/MainActivity.java

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


Antwoord 12

Deze oplossing werkte voor mij na 2 dagen debuggen.
Verander dit:

AppRegistry.registerComponent('AppName', () => App);

naar

AppRegistry.registerComponent('main', () => App);

Antwoord 13

Dit kan ook komen doordat de naam van de rootcomponent met kleine letters begint.

Corrigeer het of maak het project liever opnieuw aan met een PascalCase-naam.

bijv. ontsteek nieuwe HelloWord


Antwoord 14

Alle gegeven antwoorden werkten niet voor mij.

Ik had een ander knooppuntproces lopen in een andere terminal, ik sloot die opdrachtterminal en alles werkte zoals verwacht.


Antwoord 15

je moet het registrerenin index.android.js / index.ios.js

zoals dit:

'use strict';
import {
    AppRegistry
} from 'react-native';
import app from "./app";
AppRegistry.registerComponent('test', () => app);

Antwoord 16

Dit heeft het voor mij opgelost

AppRegistry.registerComponent('main', () => App);

Dus mijn index.js-bestand

import { AppRegistry } from 'react-native';
import App from './App';
AppRegistry.registerComponent('main', () => App);

En mijn bestand package.json:

"dependencies": {
    "react": "^16.13.1",
    "react-dom": "~16.9.0",
    "react-native": "~0.61.5"
},

Antwoord 17

Voor mij was het probleem eenvoudig.

Gemaakt project a -> alles werkte

Gemaakt project b -> kwam deze fout tegen

metro was nog steeds actief met het tijdelijke pad naar de andere toepassing. In mijn geval was de oplossing zo simpel als het sluiten van het metroproces en het opnieuw laten opstarten


18

Als u bij Expo bent, moet u de modulenaam niet wijzigen in appdelegat.m en in GetMainComponentName (), de standaardnaam door RegisterRotcomponent (App) is “Main”, dus het moet “Main”

blijven


19

Naam wijzigen en Properties weergeven in app.json met nieuwere naam

Other episodes