2016-05-12 152 views
2

我正在按照指南启动react.js。 http://code.tutsplus.com/tutorials/creating-a-dictionary-app-using-react-native-for-android--cms-24969 我安装了节点,反应,android studio和genymotion模拟器。当我在模拟器建立应用程序的一部分,我得到这个错误:React-native:“无法连接到开发服务器”-Android应用

error build image

我激活USB debuggin工具。当我尝试在命令提示符下运行adb devices命令时,它什么也不给我。

回答

2

看起来服务器无法通过手机访问。

可能的原因:

  • 服务器可能无法运行
  • 的IP地址可能是错误的
  • 电话无法访问该IP地址

解决方案:

如果您通过USB连接手机。反向TCP端口号8081通过运行以下命令

adb reverse tcp:8081 tcp:8081 
+0

这应该是公认的答案! – WiRa

0

你需要下面跟随命令来获取NPM重新开始:

1)须藤lsof的-N -i4TCP:8081 | grep LISTEN

2)kill -9(在这里输入进程ID,从上面的命令返回)。

2

根据我从哪里建设,我无法使用本地IP运行React Native应用程序(通常为公共网络,如咖啡店)。我已经能够解决这个问题的最好方法是使用名为ngrok的工具来建立到您本地主机的公共隧道。

一旦你安装了它,只需运行ngrok http 8081(或者你为打包程序使用的任何端口)。它会启动隧道并为您提供一个网址(如http://123j2h3s.ngrok.io)。在应用程序中,摇动以打开开发人员设置,触摸Dev Settings,然后在调试触摸Debug server host & port for device下输入ngrok url(无需添加http://)。

希望这会有所帮助!

6

我建议2个步骤(两者都需要解决我的问题)

  1. 关闭您的本地防火墙。在OSX,进入“安全&隐私” - >“防火墙” - >点击锁图标 - >“关闭防火墙”

  2. 默认端口8081可以使用(即使lsof命令,否则建议) 。尝试在启动另一个端口: react-native start --port=8088

    和设备上,摇晃它以获得dev的菜单中,点击“开发设置” - >“调试服务器主机&端口设备” - >输入“XX.XX.XX .XX:8088" (其中x是你的本地IP)

-1

要使用本地服务器上运行,运行反应本地项目根目录

  1. 反应母语开始下下面的命令>/dev/null 2> 2名.adb反向TCP:8081的TCP:8081

要没有服务器运行,通过运行捆绑jsfile到APK:

1.创建下机器人/应用/ SRC的资产的文件夹/主要是 2. curl“http://localhost:8081/index.android.bundle?platform=android”-o“android/app/src/main/assets/index.android.bundle”

0

我在Ubuntu 16.04中遇到了类似的问题。在我的情况下,问题是节点包装程序未运行。

要检查的打包很容易运行,就可以打开浏览器,输入

http://localhost:8081/

你必须看到“响应本地打包正在运行。”

如果你不这样做,你就可以开始从控制台打包运行

反应本土开始

如果你喜欢

错误“ERROR表/ /项目/路/安卓/应用程序/生成/中间体/增量/ mergeDebugResources/merged.dir /值儒ENOSPC”

然后运行第一

回波fs.inotify.max_u ser_watches = 524288 | sudo tee -a /etc/sysctl.conf & & sudo sysctl -p

然后再次运行react-native start并在模拟器中按两次字母R来重新加载。