作者:镜水影快乐 | 来源:互联网 | 2023-08-22 15:53
androidreleaseapkcrashwhenopen,erroris:java.lang.RuntimeException:Unabletoloadscriptfromas
android release apk crash when open, error is:
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.
完整的报错信息
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.
复现过程:
1 bundle js
npm run bundle-android
2 generate apk
npm run build-android
下面是我的脚本
"build-android": "rm -rf android/app/build && cd android && ./gradlew assembleRelease && cd ..",
"bundle-android": "node node_modules/react-native/local-cli/cli.js 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/",
3 app crash on start
app 安装到真机后,启动crash。通过 android studio 查看日志,发现报错信息:
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.
问题分析
网上找了一堆答案,但是都是针对 react-native run-android 时的报错解决办法。
在今天之前,我的工程都是通过上面的方式进行打包,没有任何问题,很奇怪。
回顾之前,这个版本的开发,我升级了 android studio 到 3.2 。
查资料发现, android studio 的 assets 文件和 默认的 eclipse 目录位置不一样。
android studio assets目录是: android/app/assets
eclipse assets目录是:android/app/src/main/assets
解决办法
把 android/app/src/main/assets 下的 index.android.bundle index.android.bundle.meta 拖到
android/app/assets 下面,再次打包后,问题就解决了。
顺便,把 android/app/src/main/assets/fonts 文件拖到 android/app/src/main/assets 下面,解决了 android icon 字体乱码问题。
截图如下:
android studio
vscode
更新bundle 脚本为:
"bundle-android2": "node node_modules/react-native/local-cli/cli.js bundle --platform android --dev false --entry-file index.android.js --bundle-output android/app/assets/index.android.bundle --assets-dest android/app/src/main/res/"
相关链接
https://github.com/facebook/react-native/issues/18692 github.com
Unable to load script from assets ‘index.android.bundle’.make sure you bundle is packaged correctly….. · Issue #18692 · facebook/react-native
Unable to load script from assets ‘index.android.bundle’.make sure you bundle is packaged correctly….. · Issue #18692 · facebook/react-native github.com
android studio 读取assets文件夹下的文件 blog.csdn.net