react-native run-android
comando termina deixando uma mensagem no simulador android. A mensagem é a seguinte:
Não é possível carregar o script. Verifique se você está executando um servidor Metro ou se seu pacote 'index.android.bundle' está compactado corretamente para a liberação.
O que estou fazendo de errado?
reactjs
react-native
react-native-android
react-native-cli
metro-bundler
Belle Solutions
fonte
fonte
Respostas:
Você ainda não iniciou o empacotador. Execute
npm start
oureact-native start
no diretório raiz do seu projeto antesreact-native run-android
.fonte
Essas etapas realmente me ajudam:
Etapa 1: crie um diretório em android / app / src / main / assets
Comando do Linux :
mkdir android/app/src/main/assets
Etapa 2: renomeie
index.android.js
(no diretório raiz) paraindex.js
( talvez exista umindex.js
arquivo nesse caso, você não precise renomeá-lo ) e execute o seguinte comando:Etapa 3: crie seu APK:
react-native run-android
Por favor, use o index.js na versão mais recente.
Aproveitar :)
fonte
index.js
arquivo no diretório raiz caso em que você não precisa para renomeá-loPara mim, este erro foi causado por uma atualização do react-native
Se você verificar o diff de atualização, precisará criar um manifesto de depuração
android/app/src/debug/AndroidManifest.xml
Veja para mais informações: https://stackoverflow.com/a/50834600/1713216
https://react-native-community.github.io/upgrade-helper/
fonte
android:usesCleartextTraffic="true"
, principalmente,AndroidManifest.xml
se isso funciona?Primeiro, execute as etapas 4 e 5 e, em seguida, você pode executar seu projeto. Se você não obtiver o resultado (com as etapas 4 e 5), execute as seguintes etapas
1- Tente fazer o downgrade da versão do nó (a versão atual é
12.13.1
)2- Adicione o caminho do módulo npm (
C:\Users\your user name\AppData\Roaming\npm
) às variáveis do sistema em vez das variáveis do usuário3- Instale o reagente nativo globalmente usando o comando
4- Vá para a raiz do diretório do seu projeto e execute o seguinte comando:
5- Abra outro terminal na raiz do seu projeto e execute o seguinte comando:
EDIT:
Você está usando Genymotion? Se sim, execute o seguinte passo:
Após a etapa acima, se você receber o seguinte erro?
Abra seu genymotion e vá para:
genymotion menu -> Settings -> ADB -> Em seguida, selecione use custom android sdk tools(clique em Procurar para encontrar a localização do SDK)
Por fim, execute seu projeto novamente ..
fonte
Você pode tentar o seguinte:
Adicione esta linha no seu AndroidManifest.xml
fonte
Um problema semelhante aconteceu comigo.
Aparentemente, o Mcafee bloqueia a porta 8081. Levei horas para descobrir isso.
Tente executar:
Quando o aplicativo aparecer com um erro no emulador, entre nas configurações do desenvolvedor ( Ctrl+ M).
Altere o "Host e porta do servidor de depuração do dispositivo" para "localhost: 1234".
Feche o aplicativo e inicie-o na gaveta do aplicativo.
fonte
basta adicionar três respingos em: node_modules \ metro-config \ src \ defaults \ blacklist.js
substitua esta parte:
fonte
se você tiver tudo configurado corretamente, tente o seguinte:
tcp reverso adb: 8081 tcp: 8081
Por quê? "Quando o empacotador RN está em execução, há um servidor web ativo acessível em seu navegador em 127.0.0.1:8081. É nesse servidor que o pacote JS para seu aplicativo é servido e atualizado à medida que você faz alterações. Sem o proxy reverso, seu telefone não conseguiria se conectar a esse endereço ".
todos os créditos para Swingline0
fonte
[Resposta rápida]
Depois de tentar resolver esse problema no meu espaço de trabalho, encontrei uma solução.
Esse erro ocorre porque há um problema com o Metro usando algumas combinações da versão NPM e Node.
Você tem 2 alternativas:
Alternativa 2: Vá para este arquivo:
\node_modules\metro-config\src\defaults\blacklist.js
e altere este código:e mude para isso:
fonte
Isso funcionou para mim depois de tentar várias maneiras.
No arquivo
node_modules\metro-config\src\defaults\blacklist.js
Substitua:
com:
espero que isto ajude.
fonte
metro-config
usado \ para caminhos em vez de /, que esta resposta sugere modificar. Não faça isso . Modificar pacotes npm significa que toda a sua equipe deve fazer isso em suas máquinas, no CI, no preparo, na produção e sempre que o metro-config lançar uma atualização. Uma abordagem melhor é instalar o metro-config no GitHub, cometer uma correção, enviar e enviar um PR para corrigi-lo para todos.A partir do Android 9.0 (API nível 28), o suporte a texto não criptografado é desativado por padrão.
É isso que você precisa fazer para se livrar desse problema se você executar comandos de execução normais corretamente
E modifique seu arquivo de manifesto do Android como este.
fonte
Depois de horas procurando uma resposta. A solução foi criar um nó de downgrade para a versão 12.4.
No meu caso, percebo que o erro ocorre apenas na versão React 0.60 nativa com a versão 12.6 do nó.
fonte
Minha solução para isso é a seguinte:
Iniciar servidor Metro
Iniciar Android
Se houver erros dizendo "porta 8081 já em uso", você poderá interromper esse processo e executar novamente
Consulte Reagir página de solução de problemas nativa .
fonte
Se você estiver no Linux, abra o terminal no diretório raiz do aplicativo e execute
abra outra janela do terminal e execute:
fonte
Eu só quero adicionar uma possibilidade não óbvia não abordada aqui. Estou usando @ react-native-community / netinfo para detectar alterações na rede, principalmente no estado da rede. Para testar o estado de desligamento da rede, o switch WIFI (no emulador) precisa estar desligado. Isso também efetivamente elimina a ponte entre o emulador e o ambiente de depuração. Eu não havia reativado o WIFI após meus testes, pois estava longe do computador e esqueci-o imediatamente quando voltei.
Existe a possibilidade de que esse também seja o caso de outra pessoa e que valha a pena conferir antes de tomar outras medidas drásticas.
fonte
Eu estava tendo o mesmo problema, o problema para mim era que o adb não estava no caminho correto do ambiente, o erro está informando a porta do metrô, enquanto você está no adb, as portas são eliminadas e reiniciadas.
Adicionar variável de ambiente (ADB)
Execute o Android build novamente
Ou
fonte
Eu também enfrentei esse problema. Eu resolvi esta etapa a seguir.
Verifique o caminho do android sdk no Environment Veritable.
Adicionar
ANDROID_HOME = C:\Users\user_name\AppData\Local\Android\Sdk
na variável do sistemae
C:\Users\user_name\AppData\Local\Android\Sdk\platform-tools
caminho na variável do sistemasubstitua sharedBlacklist como o segmento de código abaixo,
em node_modules / metro-config / src / default / blacklist.js
Em seguida, execute npx react-native run-android --port 9001
Feliz codificação ..!
fonte
Eu experimentei isso apenas porque meu Wifi foi desligado por engano no meu emulator.i liguei novamente e comecei a funcionar bem. Espero que seja útil para alguém
fonte
A solução que funcionou para mim é a seguinte:
fonte
atualizar esta parte na lista negra do metro
fonte
Encontrei o mesmo problema ao seguir o tutorial React Native (desenvolvendo no Linux e direcionando o Android).
Esse problema me ajudou a resolver o problema nas etapas a seguir. Execute os seguintes comandos na sequência abaixo:
mkdir android/app/src/main/assets
react-native bundle --platform android --dev false --entry-file index.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
react-native run-android
Você pode automatizar as etapas acima colocando-as em
scripts
parte dapackage.json
seguinte maneira:Então você pode executar a
npm run android-linux
partir da sua linha de comando todas as vezes.fonte
Por padrão, um pequeno servidor JavaScript chamado "Metro Server" é executado na porta 8081.
Você precisa disponibilizar esta porta para que este servidor inicie. Assim,
Como liberar a porta?
http://tenbull.blogspot.com/2019/05/how-to-kill-process-currently-using.html
Como matar o processo atualmente usando uma porta no localhost no Windows?
e, o mais importante, atualizei a versão do meu nó de 8.x para 10.x (mais recente), conforme sugerido pelo facebook @ https://facebook.github.io/react-native/docs/getting-started
fonte
Para mim, esse problema começou com a atualização do react-native. A atualização foi necessária para adicionar suporte de 64 bits.
Além disso, uma mudança importante que eu fiz para a atualização foi em ../android/build/build.gradle
Eu tive que alterar o targetSdkVersion de 27 para 28 após o aviso quando tentei fazer upload da compilação (.apk) para o goole play console. Mal sabia eu que essa era a causa raiz do erro acima para mim. As respostas imediatas de @tom e @tinmarfrutos faziam sentido absoluto.
Resolvi o problema adicionando android: usesCleartextTraffic = "true" ao meu android / app / src / debug / AndroidManifest.xml
fonte
No meu caso, eu configurei um proxy no meu emulador. Ele volta ao normal depois de remover esse proxy.
fonte
A possibilidade desse erro também é o caminho errado, verifique uma vez
fonte
IMPORTANTE - Você pode ter muitos dispositivos virtuais em seu ambiente. Verifique se você está alterando o AVD e repita a configuração novamente.
Informações sobre depuração -
Caso você esteja enfrentando o erro acima, você deve primeiro verificar o que está sendo executado na porta 8081
A maneira mais rápida de descobrir que está usando o seguinte comando no terminal
se isso lhe mostrar algo, significa que a porta está bloqueada. se possível, desbloqueie essa porta.
Caso contrário, você precisaria alterar a porta. O processo para fazer isso já foi mencionado no comentário acima por Naveen Kumar
Verifique se o 9001 também não é usado :)
fonte
Tente estas etapas se você já tentou de tudo mencionado nas soluções acima:
fonte
Tente o seguinte.
Talvez após as etapas anteriores você tenha as execuções npm start - --reset-cache
Eu trabalho, espero que ajude você.
fonte
Se você estiver executando no Linux OS, pode haver um caso em que o servidor remoto npm não esteja em execução. Abra outro terminal (com o diretório do projeto) e execute este comando sudo npm start ou sudo react -native start antes de executar sudo react -native run-android
fonte
A mensagem de erro no emulador é meio enganosa. No meu caso, eu usei um Macbook. Eu precisava alterar as permissões no android / gradlew executando
$ chmod 755 ./gradlew
e, em seguida, o aplicativo poderia ser criado e implantado no emulador do android.fonte