React-Native “Não foi possível conectar ao servidor de desenvolvimento” em createReactContext ()
Meu aplicativo nativo de reação do Android está travando com umExecutionException
.
"Não foi possível conectar ao servidor de desenvolvimento."
O método que está travando éReactInstanceManagerImpl.createReactContext()
.
Mas isso énão é o erro normal como mostra esta captura de tela:
O Logcat me mostra este stacktrace:
Exception in native call from JS
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.RuntimeException:
Could not connect to development server.
at com.facebook.react.ReactInstanceManagerImpl.createReactContext(ReactInstanceManagerImpl.java:860)
at com.facebook.react.ReactInstanceManagerImpl.access$700(ReactInstanceManagerImpl.java:98)
at com.facebook.react.ReactInstanceManagerImpl$ReactContextInitAsyncTask.doInBackground(ReactInstanceManagerImpl.java:194)
...
Caused by: java.util.concurrent.ExecutionException: java.lang.RuntimeException:
at com.facebook.react.common.futures.SimpleSettableFuture.get(SimpleSettableFuture.java:68)
at com.facebook.react.ReactInstanceManagerImpl.createReactContext(ReactInstanceManagerImpl.java:831)
... 9 more
Caused by: java.lang.RuntimeException:
at com.facebook.react.bridge.ReactBridge.loadScriptFromFile(Native Method)
at com.facebook.react.bridge.JSBundleLoader$2.loadScript(JSBundleLoader.java:58)
at com.facebook.react.bridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:148)
at com.facebook.react.ReactInstanceManagerImpl$4.call(ReactInstanceManagerImpl.java:851)
...
Isso sugere que o servidor enviou o código javascript de volta ao dispositivo e oReactBridge.loadScriptFromFile()
de alguma forma não pode lidar com o pacote.
Pontos a esclarecer:
isso acontece no emulador e no dispositivo (conectado via USB)isso acontece no Linux (Mint) e Windows (8.1)Eu corriadb reverse tcp:8081 tcp:8081
conforme o conselho normaleu corrireact-native start
e o empacotador / servidor está sendo executadoo dispositivo se conecta ao servidor de desenvolvimento, pois isso é registrado na janela do empacotadoro URL atingido pelo dispositivo retorna dados, como pode ser visto se copiado na barra de endereços do navegadorComo isso é diferente denormal Mensagem "Não foi possível conectar ..."?
Aqui está uma captura de tela do que acontece quando o servidor não está legitimamente em execução:
As diferenças incluem:
nãoExecutionException
ouRuntimeException
antes da mensagem de erromaior clareza ao fornecer o URL que foi chamado no servidorerro vem deDevServerHelper.onFailure()
O Logcat mostra que o stacktrace é bem diferente nessenormal caso esperado:
Unable to download JS bundle
com.facebook.react.devsupport.DebugServerException:
Could not connect to development server.
at com.facebook.react.devsupport.DevServerHelper$1.onFailure(DevServerHelper.java:196)
at okhttp3.RealCall$AsyncCall.execute(RealCall.java:140)
at okhttp3.internal.NamedRunnable.run(NamedRunnable.java:32)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
at java.lang.Thread.run(Thread.java:818)