Estou tentando executar o AwesomeProject no meu Nexus5 (Android 5.1.1).
Eu sou capaz de construir o projeto e instalá-lo no dispositivo. Mas quando eu corro, eu tenho uma tela vermelha dizendo
Não foi possível fazer o download do pacote JS. Você esqueceu de iniciar o servidor de desenvolvimento ou conectar seu dispositivo?
Ao reagir ao iOS nativo, posso optar por carregar o jsbundle offline. Como posso fazer a mesma coisa para o Android? (Ou pelo menos, onde posso configurar o endereço do servidor?)
Atualizar
Para executar com o servidor local, execute os seguintes comandos no diretório raiz do projeto react-native
react-native start > /dev/null 2>&1 &
adb reverse tcp:8081 tcp:8081
por favor, dê uma olhada na resposta de dsissitka para mais detalhes.
Para executar sem um servidor, agrupe o jsfile no apk executando:
- crie uma pasta de ativos em
android/app/src/main
curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
por favor, dê uma olhada na resposta do kzzzf para mais detalhes.
android
react-native
Mateus
fonte
fonte
adb reverse
não é suportada?adb reverse tcp:8081 tcp:8081
você precisa ADB 1.0.32 versão,reverse
opção não está em 1.0.31Respostas:
Para agrupar o arquivo JS no seu apk enquanto o servidor está executando (
react-native start
), faça o download do pacote no diretório de ativos do seu aplicativo:Com a próxima versão (0.12), corrigiremos o
react-native bundle
comando para trabalhar com projetos Android conforme o esperado.fonte
O seguinte fez funcionar para mim no Ubuntu 14.04:
Atualização : Consulte
Atualização 2 : @scgough Recebemos este erro porque o React Native (RN) não conseguiu buscar o JavaScript do servidor de desenvolvimento em execução em nossas estações de trabalho. Você pode ver por que isso acontece aqui:
https://github.com/facebook/react-native/blob/42eb5464fd8a65ed84b799de5d4dc225349449be/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevServerHelper.java#L116-L137
Se o seu aplicativo RN detectar que você está usando o Genymotion ou o emulador, ele tentará buscar o JavaScript em GENYMOTION_LOCALHOST (10.0.3.2) ou EMULATOR_LOCALHOST (10.0.2.2). Caso contrário, presume que você esteja usando um dispositivo e tenta buscar o JavaScript em DEVICE_LOCALHOST (host local). O problema é que o servidor dev é executado no host local da estação de trabalho, não no dispositivo, portanto, para fazê-lo funcionar, você precisa:
fonte
Ok, acho que percebi qual é o problema aqui. Tinha a ver com a versão que
watchman
eu estava executando.Em um novo shell, execute
brew update
então:brew unlink watchman
then:brew install watchman
agora, você pode executar a
react-native start
partir da pasta do projetoDeixo este shell aberto, crio uma nova janela do shell e corro:
react-native run-android
da minha pasta do projeto. Tudo está certo com o mundo.ps. Eu estava originalmente na versão 3.2 do watchman. Isso me atualizou para 3.7.
pps. Eu sou novo nisso, para que não seja o caminho mais rápido para a solução, mas funcionou para mim.
* MAIS INFORMAÇÕES PARA EXECUTAR / DEBUGGING EM UM DISPOSITIVO *
Você pode achar que, se implantar seu aplicativo no seu dispositivo Android, em vez de um emulador, você verá uma tela vermelha da morte com um erro dizendo
Unable to load JS Bundle
. Você precisa definir o servidor de depuração para o seu dispositivo para que seu computador esteja executando o react ... ou o nome OU o endereço IP.Menu
botão do dispositivoDev Settings
Debug server host for device
ouChange Bundle Location
192.168.1.10:8081
Mais informações: http://facebook.github.io/react-native/docs/running-on-device-android.html
fonte
brew uninstall watchman
antes de instalar a versão mais recente para mim.No diretório do seu projeto, execute
Emite o seguinte:
fonte
react-native run-android
a pasta do projeto. Ele cria OK no terminal, mas assim que o aplicativo é aberto no meu dispositivo, fico com a tela vermelha dizendoUnable to download JS bundle
Uma solução fácil que funciona para mim com o Ubuntu 14.04.
O emulador (já iniciado) retornará: Não foi possível baixar o JS Bundle; inicie novamente o servidor JS:
Pressione Recarregar JS no emulador. Funcionou para mim. Espero que ajude
fonte
No aplicativo no Android, abri o Menu (Command + M no Genymotion) -> Configurações do desenvolvedor -> Host do servidor de depuração e porta do dispositivo
defina o valor para: localhost: 8081
Funcionou para mim.
fonte
Depois de experimentar uma combinação das respostas aqui, é isso que está funcionando para mim.
Estou usando o Genymotion como meu emulador.
1 Inicie o emulador Genymotion.
2 De um terminal
3 Recarregue do emulador.
Carrega!
Agora posso começar a me desenvolver.
fonte
Exclua o aplicativo do seu telefone! Eu tentei várias etapas, mas isso acabou sendo feito.
$ react-native run-android
Dev Settings
e depois paraDebug server host & port for device
. Digite o IP do servidor (IP do seu computador) e o host8081
, por exemplo192.168.50.35:8081
. Em um mac, você pode encontrar o IP do seu computador emSystem Preferences -> Network -> Advanced... -> TCP/IP -> IPv4 Address
.Reload JS
.fonte
Aparentemente, o adb reverse foi introduzido no Android 5.0.
Obtendo "erro: fechado" duas vezes em "adb reverse"
Acho que temos que seguir em frente com a resposta de kzzzf
fonte
Não tenho reputação suficiente para comentar, mas isso se refere à resposta de dsissitka. Também funciona no Windows 10.
Para reiterar, os comandos são:
fonte
Aqui estão as etapas simples para executar seu aplicativo no Android (versão):
1. Vá para a raiz do seu aplicativo.
2. Execute este comando.
Todos os seus arquivos são copiados.
3. Crie um APK assinado.
Abra o estúdio android.
Compilar> Gerar APK assinado> [Preencha os detalhes necessários, o pressionamento de tecla deve ser gerado antes desta etapa]
Seu APK deve ser gerado sem erros. Instale no seu dispositivo e isso deve funcionar sem problemas.
Você também pode conectar seu dispositivo e clicar diretamente no ícone Executar no android studio para teste.
Gerando pressionamento de tecla:
Vá para C: \ Arquivos de Programas \ Java \ jdkx.x.x_x \ bin
Corre
Provavelmente solicitará que você preencha alguns detalhes. Faça isso e tenha seu arquivo de pressionamento de tecla ( my_private_key.keystore ), que pode ser usado para assinar seu apk.
fonte
react-native bundle
eu recebi Error: Duplicate resources #Eu estava conseguindo isso no Linux depois de interromper o
react-native run-android
processo. Parece que o servidor do nó ainda está em execução e, na próxima vez em que você o executar, ele não funcionará corretamente e seu aplicativo não poderá se conectar.A correção aqui é matar o processo do nó que está sendo executado em um Xterm que você pode matar ao
ctrl-c
abrir essa janela (mais fácil) ou pode encontrá-lo usando-olsof -n -i4TCP:8081
entãokill -9 PID
.Então corra
react-native run-android
novamente.fonte
Verifique sua conexão wifi.
Outra possibilidade pode ser que você não esteja conectado ao wifi, conectado à rede errada ou o endereço IP esteja errado nas configurações do desenvolvedor. Por alguma razão, meu android se desconectou do wifi e comecei a receber esse erro, sem saber.
fonte
Executando no dispositivo
Eu encontrei outra resposta.
fonte
Uma atualização
Agora, no Windows, não é necessário executar o React-Native Start. O empacotador será executado automaticamente.
fonte
Uma coisa importante a verificar que ninguém mencionou até agora: verifique o firewall local, verifique se ele está DESLIGADO .
Veja minha resposta aqui: https://stackoverflow.com/a/41400708/1459275
fonte
Estou usando apenas o Ubuntu e o Android e não consegui executá-lo. Encontrei uma solução muito simples que é atualizar o arquivo package.json, alterando estas linhas:
para
E então você executa o servidor digitando
Isso garante que o dispositivo Android procure o servidor do nó no seu computador em vez de localmente no telefone.
fonte
A pergunta inicial era sobre recarregar o aplicativo em um dispositivo físico.
Ao depurar o aplicativo em um dispositivo físico (por exemplo, via adb), você pode recarregar o pacote JS clicando no botão "ação" do lado esquerdo do dispositivo. Isso abrirá o menu de opções (Recarregar, Depurar JS remotamente ...).
Espero que isto ajude.
fonte
Este erro pode ser facilmente resolvido seguindo as etapas:
fonte
adb reverse tcp:8081 tcp:8081
na pasta raiz do meu aplicativo?Você pode seguir as instruções mencionadas na página oficial para corrigir esse problema. Esse problema ocorre no dispositivo real porque o pacote JS está localizado no seu sistema de desenvolvimento e o aplicativo dentro do seu dispositivo real não está ciente de sua localização.
fonte
Na nova configuração de depuração do React Native (com certeza 0,59) está dentro
android/app/src/debug/res/xml/react_native_config.xml
fonte
Inicie os dois terminais no mesmo e no primeiro terminal execute reat-native start e no segundo terminal react-native run-android, esse problema é resolvido de maneira simples. E boa sorte
fonte
Ei, eu estava enfrentando esse problema com meu projeto simples de reação nativa, o simulador IOS funciona bem, mas o Android continuava me dando esse erro. Aqui está uma solução possível que funcionou para mim.
etapa 1, verifique se o dispositivo adb está autorizado executando no seu terminal: dispositivos adb
se não for autorizado, execute os seguintes comandos
passo 2, sudo adb kill-server passo 3, sudo adb start-server
verifique se o comando adb devices mostra a lista de dispositivos conectados ao dispositivo emulator-5554
em vez de não autorizado, se for um dispositivo, em vez de não autorizado
etapa 4, execute npx react-native run-android
isso funcionou no meu exemplo. Espero que isso resolva seu problema.
fonte
Achei isso estranho, mas consegui uma solução. Percebi que de vez em quando minha pasta do projeto era somente leitura e não era possível salvá-la do VS. Portanto, li uma sugestão para transferir o NPM do usuário local PATH para a variável global PATH em todo o sistema, e funcionou como um encanto.
fonte
A execução do npm start do diretório react -native funcionou para mim.
fonte