Actualmente estoy revisando los tutoriales React-Native. Comencé con el tutorial de inicio, donde hice un nuevo proyecto nativo de reacción y logré ejecutar el proyecto con éxito en mi dispositivo.
Luego comencé el tutorial de Props , copié el fragmento de código e intenté ejecutar el proyecto nuevamente y tuve el siguiente mensaje de error en mi pantalla:
Respuestas:
Supongo que es un error causado por no coincidir el nombre del proyecto y su componente registrado.
Has iniciado un proyecto con un nombre, es decir
react-native init AwesomeApp
Pero en su archivo index.ios.js registra otro componente
AppRegistry.registerComponent('Bananas', () => Bananas);
Cuando debe ser
AppRegistry.registerComponent('AwesomeApp', () => Bananas);
Intenta arreglarlo.
fuente
moduleName:@"AwesemeApp"
línea en su archivo AppDelegate.mLa mayoría de las veces el problema es que tiene otro
react-native start
servidor (es decir, React Native Packager) ejecutándose en otro terminal u otra pestaña de TMUX (si está utilizando TMUX).Debe encontrar ese proceso y cerrarlo, por lo que después de ejecutarlo,
react-native run-ios
por ejemplo, establecerá un nuevo servidor de empaquetador que se registró para esa aplicación específica.Simplemente encuentre ese proceso usando:
encuentre la identificación del proceso (PID) y elimine el proceso del empaquetador usando el
kill
comando (por ejemplokill -9 [PID]
). Debería encontrar lalaunchPackager.command
aplicación en macOS, no estoy seguro acerca de los otros sistemas operativos.Luego intente ejecutar el
run-ios
(o Android) nuevamente. Debería poder ver la nueva ruta después de ejecutar el nuevo servidor de empaquetado, por ejemplo:fuente
react-native start --port <otherport>
, ¿debería correrreact-native run-<platform>
de otra manera ?, graciasstart
comando ejecuta el servidor del empaquetador, por lo que si ya compiló su aplicación, no es necesario que lo hagarun-<platform>
.Modificar
MainActivity
así,fuente
Mi solución es cambiar el nombre del módulo en "AppDelegate.m"
de
moduleName:@"AwesomeProject"
a
moduleName:@"YourNewProjectName"
fuente
Antes que nada debes iniciar tu aplicación:
Luego, debe establecer el nombre de su aplicación como el primer argumento de registerComponent.
Funciona bien.
fuente
Verifique su archivo app.json en el proyecto. si no tiene la línea appKey, entonces debe agregarla
fuente
En mi caso, hay una línea en MainActivity.java que se perdió cuando usé
react-native-rename
cli (de NPM)Obviamente, debes cambiarle el nombre por el de tu aplicación.
fuente
Creo que el servidor de nodo se ejecuta desde otra carpeta. Así que mátalo y ejecútalo en la carpeta actual.
Encuentra el servidor de nodo en ejecución: -
lsof -i :8081
Eliminar el servidor de nodo en ejecución: -
kill -9 <PID>
P.ej:-
kill -9 1653
Inicie el servidor de nodo desde la carpeta nativa actual de reacción: -
react-native run-android
fuente
Tuve el mismo problema y para mí la causa raíz fue que ejecuté (react-native start) el empaquetador desde otra carpeta react-native (AwesomeApp), mientras creaba otro proyecto en otra carpeta.
La ejecución del empaquetador desde el directorio de la nueva aplicación lo resolvió.
fuente
Esto también puede deberse a que el nombre del componente raíz comienza con minúsculas.
Grabarlo o más bien crear el proyecto una vez más con un nombre PascalCase.
p. ej. encender el nuevo HelloWord
fuente
Todas las respuestas dadas no funcionaron para mí.
Tuve otro proceso de nodo ejecutándose en otra terminal, cerré esa terminal de comando y todo funcionó como se esperaba.
fuente
necesita registrarlo en index.android.js / index.ios.js
Me gusta esto:
fuente
Resolví esto cambiando lo siguiente en el archivo app.json. Parece que la letra mayúscula arrojaba este error.
De:
A:
fuente
En lugar de cambiar el nombre
AppRegistry
,Ejecute react-native init Bananas, esto creará un código repetitivo para el proyecto Bananas y
AppRegistry.registerComponent
apuntará automáticamente a las bananasfuente
Ninguna de las soluciones funcionó para mí. Tuve que matar el siguiente proceso y volví a ejecutar react-native run-android y funcionó.
nodo ./local-cli/cli.js inicio
fuente
Yo tuve el mismo problema. Estaba usando Windows para crear una aplicación nativa de reacción para Android y estaba teniendo el mismo error. Esto es lo que funcionó.
Guarde y ejecute la aplicación normalmente. Eso funcionó para mí.
fuente
El problema también aparecerá cuando, en index.js, haya nombrado la aplicación de manera diferente al nombre que le dio para el paquete android / ios ; probablemente esto sucedió cuando expulsó la aplicación. Así que asegúrese de que al llamar
AppRegistry.registerComponent('someappname', () => App)
, someappname también se usa para los paquetes nativos o viceversa.fuente
Descubrí dónde estaba el problema en mi caso (sistema operativo Windows 10), pero también podría ayudar en Linux (puede intentarlo).
En
windows power shell
, cuando desee ejecutar una aplicación (la primera vez después del arranque de la PC) ejecutando el siguiente comando,Comienza un
node process/JS server
en otroconsole panel
, y no encuentra este error. Sin embargo, cuando se desea ejecutar otra aplicación , usted debe necesitar cerrar que ya se está ejecutandoJS server console panel
. Y luego ejecute el mismo comando para otra aplicación desdepower shell
, ese comando iniciará automáticamente otro nuevo servidor JS para esta aplicación, y no encontrará este error.No necesita cerrar y volver
power shell
a abrir para ejecutar otra aplicación, debe cerrarnode console
para ejecutar otra aplicación.fuente
Después de leer todo lo anterior, descubrí que podría haber otra razón para esto.
En mi caso:
reaccionar-nativo-cli: 2.0.1
reaccionar nativo: 0.60.4
y siguiente estructura:
Primero hay que tener en cuenta que index.android no se ha actualizado en Android Studio cuando la construcción se ejecuta por Metro Builder (react-native run-android), por lo que debe hacerse manualmente. También en el estudio de Android no "lee" el
app.json (creado de forma predeterminada junto con index.js, que cambió el nombre de index.android.js):
y esto como
(en mi caso)
Porque el estudio de Android no sabe a qué se refiere authApp. Arreglo por el momento refiriéndome al nombre de la aplicación con su nombre de cadena y no usando esa importación desde app.json:
fuente
Esto me resolvió
Entonces mi
index.js
archivoY mi
package.json
archivo:fuente
Esta solución funcionó para mí después de 2 días de depuración. Cambia esto :
a
fuente