React-Native: приложение не было зарегистрировано ошибка
в настоящее время я просматриваю учебники React-Native. Я начал с учебника по началу работы, где я сделал новый проект react native и успешно смог запустить проект на своем устройстве.
затем я начал реквизит учебник, Я скопировал фрагмент кода и попытался снова запустить проект, и на моем экране появилось следующее сообщение об ошибке:
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
- замените имя пользователя на имя вашей машины.
сохранить и запустить приложение в обычном режиме. Это сработало для меня.