React-native run-android命令通过在android模拟器中留下消息来终止。信息如下:

无法加载脚本。确保你要么运行Metro服务器,要么运行你的捆绑包index.android。Bundle '被正确地打包以便发布。

我做错了什么?


当前回答

如果你所有的配置都是正确的,那么试试这个:

adb reverse tcp:8081 tcp:8081

Why?

当RN打包程序正在运行时,在您的浏览器中有一个活动的web服务器,地址为127.0.0.1:8081。应用程序的JS包就是从这个服务器提供的,并在您进行更改时进行刷新。如果没有反向代理,您的手机将无法连接到该地址。

所有功劳归于Swingline0 .

其他回答

对我来说,这个错误是由react-native的升级引起的

从Android 9.0 (API级别28)开始,默认情况下禁用明文支持。

如果您检查了升级差异,您需要创建一个调试清单 android / app / src /调试/ AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools">
    <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
    <application android:usesCleartextTraffic="true" tools:targetApi="28" tools:ignore="GoogleAppIndexingWarning" />
</manifest>

查看更多信息:https://stackoverflow.com/a/50834600/1713216

https://react-native-community.github.io/upgrade-helper/

在某些情况下,您可能需要关闭React-native捆绑器的端口 用相同的进程重新运行应用程序

1.sudo kill -9 $(sudo lsof -t -i:9001)

2.npm start inside the project

3. react-native run-android

你可以尝试以下方法:

在AndroidManifest.xml中添加这一行

<application
[...]
android:usesCleartextTraffic="true"
/>
[...]
</application>

编辑: 注意,为了应用程序的安全性,在生产环境中它必须为假

你也可以把node js降级到小于12的版本,然后删除nodemodule,然后再次运行NPM install

像我们大多数人一样,我假设你运行的是VSCODE。对我来说,我跑了

NPX react-native start

从一个单独的终端

现在在VSCODE中从你的终端运行npx react-native run-android