我试图在我的设备上第一次运行我的第一个React Native项目(Android 4.2.2)。

我得到:

无法从assets index.android.bundle中加载脚本

我使用的命令:

CD(项目目录) react-native开始 react-native运行android


当前回答

我的mac上的McAfee阻塞端口8081,不得不将其更改为8082。

首先运行你的包服务器:

react-native start --port 8082

打开另一个终端,像往常一样启动android应用程序:

react-native run-android

一旦它完成,现在重写adb隧道的tcp端口:

adb reverse tcp:8081 tcp:8082

查看adb tcp隧道列表:

adb reverse --list

你现在应该会看到一条温馨的信息:

(reverse) tcp:8081 tcp:8082

回到你的应用程序,重新加载,完成!

PS:不要在应用程序开发设置中更改任何内容,如果你添加了“localhost:8082”,只需删除它,让它为空。

编辑: 对于所有的McAfee受害者,如果你有根访问权限,有一个更简单的解决方案,只是暂时关闭位于端口8081的McAfee进程,根本不需要更改端口:

sudo launchctl remove com.mcafee.agent.macmn

其他回答

我的mac上的McAfee阻塞端口8081,不得不将其更改为8082。

首先运行你的包服务器:

react-native start --port 8082

打开另一个终端,像往常一样启动android应用程序:

react-native run-android

一旦它完成,现在重写adb隧道的tcp端口:

adb reverse tcp:8081 tcp:8082

查看adb tcp隧道列表:

adb reverse --list

你现在应该会看到一条温馨的信息:

(reverse) tcp:8081 tcp:8082

回到你的应用程序,重新加载,完成!

PS:不要在应用程序开发设置中更改任何内容,如果你添加了“localhost:8082”,只需删除它,让它为空。

编辑: 对于所有的McAfee受害者,如果你有根访问权限,有一个更简单的解决方案,只是暂时关闭位于端口8081的McAfee进程,根本不需要更改端口:

sudo launchctl remove com.mcafee.agent.macmn

我花了半天时间来解决这个问题。

如果你使用的是28.0.0以上的API目标版本,那么你可能会遇到这个问题。

只要加上这一行

android:usesCleartextTraffic="true"

在你的Manifest Application块中。

清单应用程序块代码。

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

使用npm 4.3.0版本的react-native-cli

在项目目录中,

mkdir android / app / src / main /资产 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运行android

文件名由index.android.js更改为index.js

此问题也可能是由于设备/模拟器的蜂窝数据被关闭引起的。一定要检查一下。

对我来说,gradle清洁修复了它,当我在Android上有问题

cd android

./gradlew clean