我试图在我的设备上第一次运行我的第一个React Native项目(Android 4.2.2)。
我得到:
无法从assets index.android.bundle中加载脚本
我使用的命令:
CD(项目目录) react-native开始 react-native运行android
我试图在我的设备上第一次运行我的第一个React Native项目(Android 4.2.2)。
我得到:
无法从assets index.android.bundle中加载脚本
我使用的命令:
CD(项目目录) react-native开始 react-native运行android
当前回答
使用mkdir…/assets && react-native bundle——平台..不能完全解决这个问题,
注意,你必须在每次代码编辑时运行这个命令重新生成文件,并且在重新加载或远程调试JS后再次显示错误。
这个问题的根本原因是你的应用程序无法连接到服务器(因为一些未知的原因)
以下是我的解决方案:
首先,启动其他主机和端口上的服务,例如: React-native start——port 8082——host 0.0.0.0 然后打开应用程序开发菜单> dev Setting >设备的调试服务器主机 输入youripv4address: 8082 dev菜单>重载
希望这能有所帮助
其他回答
如果您正在物理设备上运行应用程序并得到此错误
unable to load script from assets index.android.bundle
试着运行命令:
adb reverse tcp:8081 tcp:8081
这对我很管用……
在mac中也有同样的问题,在花了2天之后,我终于能够得到它的工作。
由于模拟器蜂窝数据被关闭,我得到了无法从assets index.android.bundle加载脚本,确保你的包正在运行。
确保你的模拟器蜂窝数据是打开的,通过做这个包服务器能够捆绑index.android.js。希望这对那些处于发展阶段的人有所帮助。
我在学习React Native教程时也遇到过同样的问题(在Linux上开发,目标是Android)。
这个问题帮助我通过以下步骤解决了问题。
(在项目目录)mkdir 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运行android
您可以通过将上述步骤放在包的脚本部分来自动化它们。Json是这样的:
"android-linux": "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"
然后你可以每次都从你的命令行执行npm run android-linux。
同样的问题我已经有好几个月了。我最初使用@Jerry的解决方案,但这是一个错误的解决方案,因为它没有完全解决问题。相反,它所做的是将每个构建都作为产品构建,这意味着你在应用程序中所做的任何微小更改都意味着必须重新构建整个应用程序。
虽然这是一个暂时的解决方案,但从长期来看,它的效果非常糟糕,因为你不再能够利用React Native的惊人的开发工具,如热重载等。
正确的解决方法如下:
在MainApplication.java文件中,替换如下内容:
@Override
public boolean getUseDeveloperSupport() {
return BuildConfig.DEBUG;
}
与
@Override
public boolean getUseDeveloperSupport() {
return true;
}
由于某些原因,BuildConfig。DEBUG总是返回false,并在assets目录中生成一个bundle文件。
通过手动将此设置为true,您将强制应用程序使用packager。这将在生产中不起作用,所以一定要将其更改为false或默认值。
别忘了也要跑
$ adb reverse tcp:8081 tcp:8081
您可以根据官方页面的提示进行修复。这个问题发生在真实设备上,因为JS包位于您的开发系统上,而真实设备中的应用程序不知道它的位置。