React-Native: приложение не было зарегистрировано ошибка

в настоящее время я прохожу через React-Native учебники. Я начал с учебника по началу работы, где я сделал новый собственный проект react и успешно смог запустить проект на своем устройстве.

затем я начал реквизит учебник, Я скопировал фрагмент кода и попытался запустить проект снова, и на моем экране появилось следующее сообщение об ошибке:

16 ответов


Я думаю, это ошибка, вызванная несоответствием имени проекта и зарегистрированного компонента.

у вас есть inited проект с одним именем, т. е.

react-native init AwesomeApp

но в свой индекс.усвн.JS файл вы регистрируете другой компонент

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

, когда он должны be

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

попробуйте исправить это.


чаще всего проблема в том, что у вас есть другой react-native start (т. е. React Native Packager) сервер, работающий либо на другом терминале, либо на другой вкладке TMUX (если вы используете TMUX).

вам нужно найти этот процесс и закрыть его, поэтому после запуска react-native run-ios например, он установит новый сервер packager, который зарегистрирован для этого конкретного приложения.

просто найдите этот процесс, используя:

ps aux | grep react-native

найдите id процесса (PID) и убейте процесс упаковщика с использованием (например,kill -9 [PID]). Вы должны найти launchPackager.command app в macOS, не уверен в других операционных системах.

затем попробуйте запустить run-ios (или android) снова. Вы должны увидеть новый путь после запуска нового сервера упаковщик, например:

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

изменить MainActivity как это

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

прежде всего, вы должны запустить приложение:

react-native start

затем необходимо задать имя приложения в качестве первого аргумента registerComponent.

Он работает нормально.

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

в моем случае есть эта строка в MainActivity.java, который был пропущен, когда я использовал react-native-rename cli (от NPM)

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

очевидно, что вы должны переименовать его в имя вашего приложения.


У меня была та же проблема, и для меня основной причиной было то, что я запустил (react-native start) упаковщик из другой папки react-native (AwesomeApp), в то время как я создал другой проект в другой папке.

запуск упаковщика из каталога нового приложения решил его.


мое решение-изменить имя модуля в " AppDelegate.м"

от moduleName:@"AwesomeProject"

в moduleName:@"NewName"


Это также может быть связано с тем, что имя корневого компонента начинается с нижнего регистра.

Recorrect его или, скорее, создать проект еще раз с именем PascalCase.

например, зажечь новый HelloWord


вам нужно зарегистрироваться его в индекс.андроид.индекс на JS /.усвн.js

такой:

'use strict';

import {
    AppRegistry
} from 'react-native';

import app from "./app";

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

проблема также появится когда в индекс.js, вы назвали приложение иначе, чем имя, которое вы дали ему для пакета android/ios; вероятно, это произошло, когда вы выбросили приложение. Поэтому будьте уверены, что при вызове AppRegistry.registerComponent('someappname', () => App), someappname также используется для собственных пакетов или viceversa.


Я думаю, что сервер узлов работает из другой папки. Поэтому убейте его и запустите в текущей папке.

найти сервер узла:-

lsof -i :8081

убить сервер запущенного узла: -

kill -9 <PID>

например:-

kill -9 1653

запустить сервер узлов из текущей собственной папки react: -

react-native run-android


вместо того, чтобы изменить имя в AppRegistry ,

Run react-native init Bananas, это создаст код шаблона react для проекта Bananas и AppRegistry.registerComponent автоматически указывать на бананы

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

все приведенные ответы не работает для меня.

У меня был другой процесс узла, запущенный в другом терминале, я закрыл этот командный терминал, и все работало так, как ожидалось.


Non решений работал для меня. Мне пришлось убить следующий процесс и повторно запустить react-native run-android, и это сработало.

узел ./ local-cli / cli.начинать с JS


У меня была та же проблема. Я использовал Windows для создания родного приложения react для android и имел ту же ошибку. Вот что получилось.

  • перейдите в папку ANDROID в свой корень.
  • создайте файл с именем : местные.свойства
  • открыть его в редакторе и пишем :

sdk.dir = C:\Users\ имя пользователя \AppData\Local\Android\sdk

  • замените имя пользователя именем вашей машины.

сохранить и запустить приложение в обычном режиме. Это сработало для меня.


пожалуйста, проверьте ваше приложение.файл json в проекте. если нет строки appKey, то вы должны добавить его

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