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 .

其他回答

你还没有启动捆扎机呢。在项目的根目录下运行npm start或react-native start,然后再执行react-native Run -android。

我只是想补充一个这里没有提到的不明显的可能性。我正在使用@react-native-community/netinfo来检测网络变化,主要是网络状态。为了测试网络关闭状态,需要关闭模拟器上的WIFI开关。这也有效地切断了模拟器和调试环境之间的桥梁。测试结束后,我没有重新开启WIFI,因为我离开了电脑,回来后很快就忘了这事。

其他人也有可能是这种情况,在采取任何其他激烈步骤之前,值得检查一下。

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

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

在我的例子中,模拟器的Wifi和移动数据是关闭的。

如果你已经尝试了上述解决方案中的所有方法,可以尝试以下步骤:

在android/app/src/main/assets中创建文件 执行如下命令:

React-native bundle——platform android——dev false——entry-file index.js——bundle-output android/app/src/main/assets/index.android。Bundle——assets-dest android/app/src/main/res

现在运行命令构建react-native run-android