В настоящее время я прохожу учебники React-Native. Я начал с учебного пособия «Приступая к работе», в котором я создал новый собственный реактивный проект и успешно запустил его на своем устройстве.
Затем я запустил учебник Props , скопировал фрагмент кода и снова попытался запустить проект, и на моем экране появилось следующее сообщение об ошибке:
Ответы:
Я предполагаю, что это ошибка, вызванная несоответствием названия проекта и вашего зарегистрированного компонента.
Вы инициировали проект с одним именем, т.е.
react-native init AwesomeApp
Но в вашем файле index.ios.js вы регистрируете другой компонент
AppRegistry.registerComponent('Bananas', () => Bananas);
Когда это должно быть
AppRegistry.registerComponent('AwesomeApp', () => Bananas);
Попробуйте это исправить.
источник
moduleName:@"AwesemeApp"
строку в своем файлеВ большинстве случаев проблема заключается в том, что у вас есть другой
react-native start
(т.е. React Native Packager) сервер, работающий либо на другом терминале, либо на другой вкладке TMUX (если вы используете TMUX).Вам нужно найти этот процесс и закрыть его, поэтому после запуска,
react-native run-ios
например, он установит новый сервер упаковщика, который зарегистрирован для этого конкретного приложения.Просто найдите этот процесс, используя:
найдите идентификатор процесса (PID) и завершите процесс упаковщика, используя
kill
команду (напримерkill -9 [PID]
). Вы должны найтиlaunchPackager.command
приложение в macOS, не уверенный в других операционных системах.Затем попробуйте запустить
run-ios
(или Android) снова. Вы сможете увидеть новый путь после запуска нового сервера упаковщика, например:источник
react-native start --port <otherport>
, я должен бежатьreact-native run-<platform>
по-другому?, Спасибоstart
команда запускает сервер упаковщика, поэтому, если вы уже скомпилировали свое приложение, выполнять это не нужноrun-<platform>
.Изменить,
MainActivity
как это,источник
Мое решение - изменить имя модуля в "AppDelegate.m"
из
moduleName:@"AwesomeProject"
в
moduleName:@"YourNewProjectName"
источник
Прежде всего, вы должны запустить приложение:
Затем вы должны установить имя вашего приложения в качестве первого аргумента registerComponent.
Работает нормально.
источник
Пожалуйста, проверьте ваш файл app.json в проекте. если нет строки appKey, то вы должны добавить ее
источник
В моем случае есть такая строка в MainActivity.java, которая была пропущена, когда я использовал
react-native-rename
cli (из NPM)Очевидно, вы должны переименовать его на имя вашего приложения.
источник
Я думаю, что сервер узла работает из другой папки. Так что убей его и запусти в текущей папке.
Найти работающий сервер узла: -
lsof -i :8081
Убить работающий узел сервера: -
kill -9 <PID>
Например:-
kill -9 1653
Запустить сервер узла из текущей собственной исходной папки: -
react-native run-android
источник
У меня была та же проблема, и для меня основной причиной было то, что я запустил (реактивный запуск) упаковщик из другой реактивной папки (AwesomeApp), в то время как я создал другой проект в другой папке.
Запуск упаковщика из каталога нового приложения решил эту проблему.
источник
Это также может быть связано с тем, что имя корневого компонента начинается со строчной буквы.
Исправьте его или, скорее, создайте проект еще раз с именем PascalCase.
например, зажечь новый HelloWord
источник
Все приведенные ответы у меня не сработали.
У меня был другой процесс узла, запущенный в другом терминале, я закрыл этот командный терминал, и все работало как ожидалось.
источник
вам нужно зарегистрировать его в index.android.js / index.ios.js
как это:
источник
Я решил эту проблему, изменив следующее в файле app.json. Похоже, заглавная буква выбрасывала эту ошибку.
Из:
Для того, чтобы:
источник
Вместо того , чтобы изменить имя в
AppRegistry
,Запустите реактивный init бананы, это создаст стандартный код реакции для проекта бананов и
AppRegistry.registerComponent
автоматически укажет на бананыисточник
Ни одно из решений не сработало для меня. Я должен был убить следующий процесс и перезапустить реагировать родной запустить андроид, и это сработало.
начало узла ./local-cli/cli.js
источник
У меня такая же проблема. Я использовал Windows для создания собственного приложения для Android, и у меня была та же ошибка. Вот что сработало.
Сохраните и запустите приложение в обычном режиме. Это сработало для меня.
источник
Эта проблема также появится, когда в index.js вы назвали приложение не так, как вы назвали его для пакета android / ios ; вероятно, это произошло, когда вы выбросили приложение. Поэтому убедитесь, что при вызове
AppRegistry.registerComponent('someappname', () => App)
someappname также используется для собственных пакетов или наоборот.источник
Я выяснил, где проблема в моем случае (ОС Windows 10), но это также может помочь в Linux (вы можете попробовать).
Если
windows power shell
вы хотите запустить приложение (первый раз после загрузки ПК), выполнив следующую команду,Он начинается
node process/JS server
в другомconsole panel
, и вы не сталкиваетесь с этой ошибкой. Но, когда вы хотите запустить другое приложение , вам необходимо нужно закрыть , что уже работаетJS server console panel
. А затем выполните ту же команду для другого приложения изpower shell
той команды, которая автоматически запустит другой новый JS-сервер для этого приложения, и вы не столкнетесь с этой ошибкой.Вам не нужно закрывать и снова открывать
power shell
для запуска другого приложения, вам нужно закрытьnode console
для запуска другого приложения.источник
Прочитав все вышеизложенное, я обнаружил, что для этого может быть другая причина.
В моем случае:
response-native-cli: 2.0.1
реактивный: 0.60.4
и следующая структура:
Прежде всего следует отметить, что index.android не обновлялся в Android Studio при сборке, выполняемой сборщиком Metro (response-native run-android), поэтому это нужно делать вручную. Также в Android studio не «читает»
app.json (создается по умолчанию вместе с index.js, который переименован в index.android.js):
и так это как
(в моем случае)
причина в том, что андроид студия не знает, на что ссылается authApp. Я исправлю на данный момент ссылку на имя приложения с его строковым именем и не использую этот импорт из app.json:
источник
Это решило это для меня
Итак, мой
index.js
файлИ мой
package.json
файл:источник
Это решение сработало для меня после 2 дней отладки. Изменить это:
в
источник