尝试在Android 4.4.2上创建一个反应原生项目,我得到了这个错误屏幕

却找不到解决的办法。我尝试重新启动packager,重新连接设备,甚至重新安装react native并开始新的项目。在6.0.0和更高版本上,它工作得很好。


当前回答

因为你使用的是Android < 5.0,所以你不能使用默认的adb反向方法,但是Facebook已经添加了官方文档来通过Wi-Fi连接到开发服务器,这将支持你的版本。引用MacOS的说明,但也有Linux和Windows的说明:

Method 2: Connect via Wi-Fi You can also connect to the development server over Wi-Fi. You'll first need to install the app on your device using a USB cable, but once that has been done you can debug wirelessly by following these instructions. You'll need your development machine's current IP address before proceeding. You can find the IP address in System Preferences → Network. Make sure your laptop and your phone are on the same Wi-Fi network. Open your React Native app on your device. You'll see a red screen with an error. This is OK. The following steps will fix that. Open the in-app Developer menu. Go to Dev Settings → Debug server host for device. Type in your machine's IP address and the port of the local dev server (e.g. 10.0.1.1:8081). Go back to the Developer menu and select Reload JS.

其他回答

它“随机”出现了这个问题,我花了一段时间才意识到我的场景中哪里出了问题。

在我更新到React-native-cli 2.0.1后,有一条消息输出到日志中,帮助我挖掘并找到根本原因:

JS服务器无法识别,继续构建…

在研究了一些链接后,我发现了这个:

无法识别JS服务器

因为我在windows上,我运行netstat,发现我的VLC播放器也在8081端口上运行,导致了这个问题。 所以,在我的情况下,如果我启动vlc服务器之前的反应本机服务器,它不会工作。

在之前版本的react-native-cli中没有输出相同的日志消息,使其无声地失败。

TL, DR:检查与包管理器(默认为8081)相同的端口上是否有任何东西正在运行

对我来说,这是因为adb不在PATH中。它位于/Users/man/Library/Android/sdk/platform-tools,对我来说可能在其他地方,但无论如何,找到它并将其添加到你的路径,看看是否有帮助。

这对我来说是有效的(在尝试了我发现的所有其他解决方案之后…):

在\Android\sdk\platform-tools中运行adb reverse tcp:8081 tcp:8081

有人建议用下面这个

react-native运行android React-native start -reset-cache,

但在我的例子中,我只是关闭cli命令提示窗口,并使用以下命令。

npx react-native run-android

它运行得很好。

在终端中尝试此命令,然后重新加载。这对我很有效

Adb reverse tcp:8081 tcp:8081