我正在使用版本为0.38.0的React Native应用程序,当我尝试将其升级到0.45.1时,它显示以下错误
java.lang.RuntimeException: Unable to load script from assets 'index.android.bundle'. Make sure your bundle is packaged correctly or you're running a packager server.
at com.facebook.react.cxxbridge.CatalystInstanceImpl.jniLoadScriptFromAssets(Native Method)
at com.facebook.react.cxxbridge.CatalystInstanceImpl.loadScriptFromAssets(CatalystInstanceImpl.java:198)
at com.facebook.react.cxxbridge.JSBundleLoader$1.loadScript(JSBundleLoader.java:33)
at com.facebook.react.cxxbridge.CatalystInstanceImpl.runJSBundle(CatalystInstanceImpl.java:216)
at com.facebook.react.ReactInstanceManager.createReactContext(ReactInstanceManager.java:994)
at com.facebook.react.ReactInstanceManager.access$600(ReactInstanceManager.java:109)
at com.facebook.react.ReactInstanceManager$4.run(ReactInstanceManager.java:746)
at java.lang.Thread.run(Thread.java:761)
我尝试过以下解决方案,但它对我不起作用
SO: unable to load script from assets index.android.bundle on windows
SO: react native android failed to load JS bundle
答案 0 :(得分:25)
1-创建新文件夹=> android/app/src/main/assets
2-运行此命令=>
react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/src/main/assets/index.android.bundle --assets-dest android/app/src/main/res
此命令将创建2个文件:index.android.bundle
& index.android.bundle.meta
3- run command => react-native run-android
答案 1 :(得分:4)
添加这些行
.mydiv {
height: 40px;
width: 50px;
background-color: red;
}
@media screen and (min-width : 500px) {
.mydiv {
background-color: blue;
}
}
之前
project.ext.react = [
entryFile: "index.js",
bundleAssetName: "index.android.bundle",
bundleInAlpha: true,
bundleInBeta: true
]
在build.gradle
答案 2 :(得分:2)
好的。根据问题发生时的“何时”和“版本”,每个答案都是唯一的。
今天是2018年8月27日(此页面发布1.2年),我仍然 当我安装react-native并创建项目时发现了相同的问题 (在Windows上)按照官方网站的说明进行操作。
说实话,很难找到正确的答案,使它像“今天”的“正常”工作一样,因为一切都已经改变,并且与被抛弃的时间不同。
现在针对上述问题:无法从资产加载脚本 'index.android.bundle'。
意味着我们没有目录资产中所要求的文件。这就是所有的问题!与端口,设备,仿真器等无关。
现在,我们需要做的是使文件“存在”。这些是您可以执行的一些选择,具体取决于您的软件包配置:
如果目录中不存在目录,请创建目录“资产” android / app / src / main /或您可以在控制台中输入: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
然后,检查资产文件夹中是否存在文件。如果不, 然后尝试第二种方法:
1 react-native start // open npm window popup
2 curl "http://localhost:8081/index.android.bundle?platform=android" -o "android/app/src/main/assets/index.android.bundle"
然后,检查资产文件夹中是否存在文件。如果不, 那么您需要将项目降级为较早版本的软件包。 请遵循以下5个步骤,并且必须一步一步完成:
1 npm remove --save react-native
2 npm i --save react-native@0.55.4
3 npm remove babel-preset-react-native
4 npm i --save babel-preset-react-native@2.1.0
5 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
如果您的资产文件夹中已经有文件,则可以继续您的项目。
检查设备是否已连接并准备就绪,并运行android:
adb devices
确保获得这样的结果:
List of devices attached
cb8eca15 device
然后运行:
react-native run-android
注意:或者,您可以使用指定的版本再次创建一个新项目:
react-native初始ProjectName-版本0.55.4
答案 3 :(得分:0)
要解决无法从资产index.android.bundle加载脚本-React Native,请执行以下过程:
您必须在android项目中手动创建目录资产,或通过Terminal / CMD输入Directory进入mkdir android / app / src / main / assets
如果已成功创建目录,请转到创建的目录
运行第3步命令:
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项目npm run android。
答案 4 :(得分:0)
就我而言,仿真器处于飞行模式。 确保您的模拟器或手机可以与Metro服务器通信。
答案 5 :(得分:-1)
新版本的react-native没有index.android.js文件作为条目文件,它应该使用index.js文件