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


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

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

16 97

16 ответов:

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

вы ввели проект с одним именем, т. е.

react-native init AwesomeApp

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

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

, когда он должны быть

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

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

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

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

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

ps aux | grep react-native

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

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

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"

to moduleName:@"NewName"

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

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

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

вам нужно зарегистрироваться его в индекс.андроид.js / index.усвн.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 native: -

react-native run-android

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

запустить реагировать родной инит Бананы , это позволит создать шаблонный код реагировать на проекте бананы и AppRegistry.registerComponent автоматически указывать на бананы

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

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

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

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

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

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

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

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

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

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

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

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