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"
}