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

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

我做错了什么?


当前回答

对我有效的解决方案如下:

var sharedBlacklist = [
  /node_modules[\/\\]react[\/\\]dist[\/\\].*/,
  /website\/node_modules\/.*/,
  /heapCapture\/bundle\.js/,
  /.*\/__tests__\/.*/
]; 

其他回答

你可以尝试以下方法:

在AndroidManifest.xml中添加这一行

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

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

试试这个

taskkill /F /IM node.exe

然后

npx react-native run-android

请检查地铁服务器是否正在运行任何其他端口。如果有,停止所有服务器,然后重新启动服务器,再试一次。

首先执行步骤4和5,然后可以运行项目。如果您没有得到结果(步骤4和5),请执行以下步骤

1-尝试降级你的Node版本(当前版本是12.13.1)

  choco uninstall nodejs
  choco install nodejs --version 12.8

2-添加npm模块的路径(C:\Users\your user name\AppData\Roaming\npm)到系统变量而不是用户变量

3-使用命令全局安装react native

  npm install -g react-native-cli

4-进入项目目录的根目录,执行以下命令:

  react-native start

5-打开项目根目录下的另一个终端,执行以下命令:

   react-native run-android 

编辑:

你在用Genymotion ?是,执行以下步骤。

在以上步骤后,如果您得到以下错误?

error Failed to launch emulator. Reason: No emulators found as an output of `emulator -list-avds`.

打开你的genymotion,转到:

genymotion菜单->设置-> ADB ->然后选择使用自定义android sdk工具(点击浏览找到sdk位置)

最后,再次运行您的项目。

可能你的端口被占用了。 尝试在不同的端口上运行:

adb reverse tcp:6666 tcp:6666
react-native run-android --port 6666

检查您正在使用的端口是否空闲

linux:

lsof | grep LISTEN

窗口:

netstat -an