我正在关注启动react.js的指南。 http://code.tutsplus.com/tutorials/creating-a-dictionary-app-using-react-native-for-android--cms-24969 我安装了节点,反应,android工作室和genymotion模拟器。当我到达模拟器中构建应用程序的部分时,我收到此错误:
我激活了USB调试工具。当我尝试在命令提示符下运行adb devices命令时,它什么也没给我。
答案 0 :(得分:6)
我会建议两个步骤(两者都需要解决我的问题)
关闭本地防火墙。在osx上,转到"安全&隐私" - > "防火墙" - >点击锁定图标 - > "关闭防火墙"
默认端口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)
看起来无法通过手机访问服务器。
可能的原因:
<强>解决方案:强>
如果您通过USB连接手机。通过运行以下命令
反转TCP端口号8081
adb reverse tcp:8081 tcp:8081
答案 3 :(得分:3)
我使用了带 wifi 的 USB 电缆,对我来说,解决方案是使用:'localhost: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中遇到了与模拟器类似的问题。在我的情况下,问题是节点包装器没有运行。
要检查包装程序是否正常运行,您可以打开浏览器并输入
您必须看到&#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项目根目录
下运行以下命令要在没有服务器的情况下运行,请运行以下命令将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;