尝试在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运行android。 react-native开始。

第一个命令将为android构建apk,并将其部署到连接的设备上。当你打开应用程序,它会显示红色屏幕错误。然后运行第二个命令,该命令将运行packager并为您构建应用程序包。

我的方法是:

react-native start

之后在您的设备中使用:

click to Reload.

在console react-native中,它将获取js bundle data。

我的问题是,我通过我的AndroidManifest.xml文件,并删除了行

< uses-permission android: name = " android.permission。互联网" / >

因为我的应用程序不需要网络。然而,react本机调试应用程序确实需要互联网访问(访问packager)。:)

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

Adb reverse tcp:8081 tcp:8081

当你运行react-native run-android时,请检查是否有以下错误: adb服务器版本(XX)不匹配此客户端(XX);杀死……

在这种情况下,确保/usr/local/opt/android-sdk/platform-tools/adb和/usr/local/bin/adb指向同一个adb

在我的情况下,一个指向/Users/sd/Library/Android/sdk/platform-tools/adb (Android sdk),但另一个指向/usr/local/ caskroom /Android -platform-tools/26.0.2/platform-tools/adb (Homebrew)

问题已经修复后,他们都指向/Users/sd/Library/Android/sdk/platform-tools/adb (Android sdk)