Atualmente, estou passando pelos tutoriais do React-Native. Comecei com o tutorial de Introdução, onde criei um novo projeto nativo de reação e consegui executá-lo com êxito no meu dispositivo.
Iniciei o tutorial Props , copiei o trecho de código e tentei executar o projeto novamente e a seguinte mensagem de erro apareceu na minha tela:
Respostas:
Eu acho que é um erro causado por não corresponder o nome do projeto e o seu componente registrado.
Você iniciou o projeto com um nome, ou seja,
react-native init AwesomeApp
Mas no seu arquivo index.ios.js você registra outro componente
AppRegistry.registerComponent('Bananas', () => Bananas);
Quando deve ser
AppRegistry.registerComponent('AwesomeApp', () => Bananas);
Tente consertar.
fonte
moduleName:@"AwesemeApp"
linha em seu arquivo AppDelegate.mNa maioria das vezes, o problema é que você tem outro
react-native start
servidor (por exemplo, React Native Packager) em execução em outro terminal ou em outra guia do TMUX (se você estiver usando o TMUX).Você precisa encontrar esse processo e fechá-lo; portanto, após a execução,
react-native run-ios
por exemplo, ele estabelecerá um novo servidor de empacotador registrado para esse aplicativo específico.Basta encontrar esse processo usando:
encontre a identificação do processo (PID) e mate o processo do empacotador usando o
kill
comando (por exemplokill -9 [PID]
). Você deve encontrar olaunchPackager.command
aplicativo no macOS, sem ter certeza dos outros sistemas operacionais.Em seguida, tente executar o
run-ios
(ou android) novamente. Você poderá ver o novo caminho depois de executar o novo servidor de empacotador, por exemplo:fonte
react-native start --port <otherport>
, eu deveria correrreact-native run-<platform>
de outra maneira ?, graçasstart
comando executa o servidor de empacotador, portanto, se você já compilou seu aplicativo, não há necessidade de fazê-lorun-<platform>
.Modifique
MainActivity
assim,fonte
Minha solução é alterar o nome do módulo em "AppDelegate.m"
de
moduleName:@"AwesomeProject"
para
moduleName:@"YourNewProjectName"
fonte
Antes de tudo, você deve iniciar seu aplicativo:
Em seguida, você deve definir o nome do aplicativo como o primeiro argumento de registerComponent.
Funciona bem.
fonte
Por favor, verifique seu arquivo app.json no projeto. se não houver appKey de linha, você deve adicioná-lo
fonte
No meu caso, há esta linha no MainActivity.java que estava faltando quando eu usei o
react-native-rename
cli (do NPM)Obviamente, você deve renomeá-lo para o nome do seu aplicativo.
fonte
Eu acho que o servidor do nó está sendo executado em outra pasta. Então mate-o e corra na pasta atual.
Encontre o servidor do nó em execução: -
lsof -i :8081
Mate o servidor do nó em execução: -
kill -9 <PID>
Por exemplo:-
kill -9 1653
Inicie o servidor do nó da pasta nativa de reação atual: -
react-native run-android
fonte
Eu tive o mesmo problema e, para mim, a causa raiz foi que eu executei (reativar nativo) o empacotador de outra pasta reativa nativa (AwesomeApp), enquanto criava outro projeto em outra pasta.
A execução do empacotador no diretório do novo aplicativo o resolveu.
fonte
Isso também pode ocorrer porque o nome do componente raiz começa com letras minúsculas.
Corrija-o ou crie o projeto novamente com o nome PascalCase.
por exemplo, acenda o novo HelloWord
fonte
Todas as respostas dadas não funcionaram para mim.
Eu tinha outro processo de nó em execução em outro terminal, fechei o terminal de comando e tudo funcionou conforme o esperado.
fonte
você precisa registrá- lo em index.android.js / index.ios.js
como isso:
fonte
Resolvi isso alterando o seguinte no arquivo app.json. Parece que a letra maiúscula estava lançando esse erro.
De:
Para:
fonte
Em vez de alterar o nome em
AppRegistry
,Execute o init-nativo react Bananas, isso criará um código padrão para o projeto Bananas e
AppRegistry.registerComponent
apontará automaticamente para bananasfonte
Nenhuma das soluções funcionou para mim. Eu tive que matar o processo a seguir e executar novamente o react-native run-android e funcionou.
nó ./local-cli/cli.js start
fonte
Eu tive o mesmo problema. Eu estava usando o Windows para criar um aplicativo nativo react para android e estava tendo o mesmo erro. Aqui está o que funcionou.
Salve e execute o aplicativo normalmente. Isso funcionou para mim.
fonte
O problema também aparecerá quando, em index.js, você nomear o aplicativo de maneira diferente do nome que você deu para o pacote android / ios ; provavelmente isso aconteceu quando você ejetou o aplicativo. Portanto, certifique-se de que, ao chamar
AppRegistry.registerComponent('someappname', () => App)
, someappname também seja usado para os pacotes nativos ou vice-versa.fonte
Eu descobri onde estava o problema no meu caso (Windows 10 OS), mas também poderia ajudar no Linux (você pode tentar).
Em
windows power shell
, quando você deseja executar um aplicativo (primeira vez após a inicialização do PC) executando o seguinte comando,Ele inicia um
node process/JS server
em outroconsole panel
e você não encontra esse erro. Mas, quando você deseja executar outro aplicativo , você deve precisar fechar que já está em execuçãoJS server console panel
. E, em seguida, execute o mesmo comando para outro aplicativo a partir depower shell
, esse comando iniciará automaticamente outro novo servidor JS para esse aplicativo e você não encontrará esse erro.Você não precisa fechar e reabrir
power shell
para executar outro aplicativo, precisa fecharnode console
para executar outro aplicativo.fonte
Depois de ler todas as opções acima, descobri que poderia haver outra razão para isso.
No meu caso:
react-native-cli: 2.0.1
react-native: 0.60.4
e seguinte estrutura:
Primeiro, observe que index.android não foi atualizado no Android Studio quando a compilação é executada pelo construtor Metro (react-native run-android), portanto, isso deve ser feito manualmente. Também no Android studio não "lê" o
app.json (criado por padrão junto com index.js, que renomeou index.android.js):
e assim isso
(No meu caso)
causar o fato de que o android studio não sabe a que se refere o authApp. Corrijo no momento, referindo-me ao nome do aplicativo com o nome da string e não usando essa importação do app.json:
fonte
Isso resolveu para mim
Então meu
index.js
arquivoE meu
package.json
arquivo:fonte
Esta solução funcionou para mim após 2 dias de depuração. Mude isso :
para
fonte