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

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


当前回答

“npm 开始”

我刚刚关闭了终端机,开了一个新的。通过cd命令进入项目位置。然后简单地输入- "npm start"。然后'r'表示重新加载。一切都消失了。我认为每个人都应该马上尝试一下。

其他回答

我最终不得不打开我正在使用的端口(默认为8081)。在Linux上,您可以执行以下操作

sudo iptables -A INPUT -p tcp --dport 8081 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp --sport 8081 -m conntrack --ctstate ESTABLISHED -j ACCEPT

您可以进行测试,看看是否真的需要这样做。只需在Android设备上的Chrome浏览器中导航到开发服务器。如果它没有响应,那么这可能就是您所需要的。如果它有响应,那么这对你没有帮助。

“npm 开始”

我刚刚关闭了终端机,开了一个新的。通过cd命令进入项目位置。然后简单地输入- "npm start"。然后'r'表示重新加载。一切都消失了。我认为每个人都应该马上尝试一下。

我在设备Z3 Compact D5803 - 6.0.1上有同样的异常

我打开。buckconfig文件并修改了这一行:

target =谷歌Inc.:谷歌api:23

to

target =谷歌Inc.:谷歌api:24

因为我在SDK管理器中看到Android 6。X的api级别为24。

对此,一个可能的解决方案是,您很可能不首先捆绑应用程序,而是执行以下步骤,然后将app-debug.apk部署到您的设备上

$ cd myproject  
$ react-native start > /dev/null 2>&1 &  
$ curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"

(如果文件夹资产不存在,创建它)

然后从项目根运行

$> (cd android/ && ./gradlew assembleDebug)

将创建的apk安装到您的设备,地址:android/app/build/outputs/apk/app-debug.apk

如果这解决了你的问题,请告诉我

编辑:

你可以把它放在你的包裹里。我相信它会在即将发布的react-native版本中被修复,并将在组装最终的APK之前执行,因此这将不需要(我希望也是如此)

把:

"scripts": {
    "build": "(cd android/ && ./gradlew assembleDebug)",
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "bundle-android": "react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --sourcemap-output android/app/src/main/assets/index.android.map --assets-dest android/app/src/main/res/"
  },

或者如前所述的旋度等效,但对于大多数情况,上面的更健壮

在设置中,转到隐私>本地网络,查看请求访问的每个应用程序的列表。 我通过允许我的应用程序访问本地网络来解决这个问题。 (试图从我的mac m1上运行在同一wifi的实体iPhone设备上)。