React-native:“无法连接到开发服务器” - android app

时间:2016-05-12 07:57:36

标签: android reactjs react-native

我正在关注启动react.js的指南。 http://code.tutsplus.com/tutorials/creating-a-dictionary-app-using-react-native-for-android--cms-24969 我安装了节点,反应,android工作室和genymotion模拟器。当我到达模拟器中构建应用程序的部分时,我收到此错误:

error build image

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

10 个答案:

答案 0 :(得分:6)

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

  1. 关闭本地防火墙。在osx上,转到"安全&隐私" - > "防火墙" - >点击锁定图标 - > "关闭防火墙"

  2. 默认端口8081可能正在使用中(即使lsof命令另有说明)。在开始时尝试另一个端口: react-native start --port=8088

    在您的设备上,摇动它以获取开发菜单,点按"开发设置" - > "调试服务器主机&设备端口" - >输入" XX.XX.XX.XX:8088" (其中x是您的本地IP)

答案 1 :(得分:4)

在Android 9上,您需要在./android/app/src/debug/AndroidManifest.xml的应用程序标签中添加以下内容

android:usesCleartextTraffic="true"

https://github.com/facebook/react-native/issues/15388#issuecomment-505187651

答案 2 :(得分:3)

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

可能的原因:

  • 服务器可能未在运行
  • IP地址可能有误
  • 手机无法访问IP地址

<强>解决方案:

如果您通过USB连接手机。通过运行以下命令

反转TCP端口号8081
 adb reverse tcp:8081 tcp:8081

答案 3 :(得分:3)

我使用了带 wifi 的 USB 电缆,对我来说,解决方案是使用:'localhost:8081'

  1. 打开应用内开发者菜单。摇晃手机或按 CMD/ctrl + M
  2. 点击设置
  3. 点击设备的调试服务器主机和端口
  4. 写'本地主机:8081'
  5. 在终端写'adb reverse tcp:8081 tcp:8081'

返回开发者菜单并选择重新加载。

答案 4 :(得分:2)

根据我的构建地点,我无法使用本地IP运行React Native应用程序(通常是咖啡店等公共网络)。我能够弄明白的最好方法是使用一个名为ngrok的工具来建立到本地主机的公共隧道。

安装完毕后,只需运行ngrok http 8081(或您用于打包器的任何端口)。它会旋转隧道并给你一个网址(如http://123j2h3s.ngrok.io)。在应用上,摇动以打开开发人员设置,触摸Dev Settings,然后点击调试触摸Debug server host & port for device并在那里输入ngrok网址(无需添加http://)。

希望这有帮助!

答案 5 :(得分:0)

您需要按照以下命令再次启动npm:

1)sudo lsof -n -i4TCP:8081 | grep LISTEN

2)kill -9(输入上面命令返回的进程id)。

答案 6 :(得分:0)

我在Ubuntu 16.04中遇到了与模拟器类似的问题。在我的情况下,问题是节点包装器没有运行。

要检查包装程序是否正常运行,您可以打开浏览器并输入

http://localhost:8081/

您必须看到&#34; React Native packager正在运行。&#34;

如果你不这样做,那么你可以从运行控制台

启动打包器

react-native start

如果您收到错误

&#34;错误观看/your/project/path/android/app/build/intermediates/incremental/mergeDebugResources/merged.dir/values-ru ENOSPC&#34;

然后先运行

echo fs.inotify.max_user_watches = 524288 | sudo tee -a /etc/sysctl.conf& amp;&amp; sudo sysctl -p

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

答案 7 :(得分:0)

在清单中将android:usesCleartextTraffic =“ true”添加到您的应用程序中

 <application
       ....
       android:usesCleartextTraffic="true"
       android:theme="@style/AppTheme">

答案 8 :(得分:0)

这可能有帮助

adb kill-server
adb start-server
adb reverse tcp:8081 tcp:8081

答案 9 :(得分:-1)

要使用本地服务器运行,请在react-native项目根目录

下运行以下命令
  1. react-native start&gt; / dev / null 2&gt;&amp; 1&amp; 2 .adb reverse tcp:8081 tcp:8081
  2. 要在没有服务器的情况下运行,请运行以下命令将jsfile捆绑到apk中:

    1.在android / app / src / main下创建一个assets文件夹 2.卷曲&#34; http://localhost:8081/index.android.bundle?platform=android&#34; -o&#34; android / app / src / main / assets / index.android.bundle&#34;