今天在学习ReactNative时,研究到ReactNative嵌入到原生app时遇到的一个问题,导致程序跳转的时候就crash,错误日志如下:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
几经查找,在facebook的github上的issues中找到了问题的解决方式,
链接 https://github.com/facebook/react-native/issues/9336
这是个已经被closed的问题,
看到国外的有人也受该问题的困扰,有人给了一下的链接
https://stackoverflow.com/questions/34175416/how-to-use-offline-bundle-on-android-for-react-native-project
中完美的解决了我的问题。
说下我用的两种解决方式吧:
1. 修改项目中的package.json文件
看下你的文件中的是否有scripts模块,添加bundle-android,如图
这里面的命令过长,没有截完整,全部命令如下:
“bundle-android”: “react-native bundle –platform android –dev false –entry-file index.android.js –bundle-output android/app/src/main/assets/index.android.bundle –sourcemap-output android/app/src/main/assets/index.android.map –assets-dest android/app/src/main/res/”
注意:命令中的assets路径按照自己的项目自行调整
2. 使用命令行直接生成,不用修改package.json,不管有没有bundle-android模块
首先cd到项目的根目录中,执行命令react-native bundle --platform android --dev false --entry-file index.android.js --bundle-output src/main/assets/index.android.bundle --assets-dest src/main/res/
运行效果如下图:
还是那句话,assets路径自己按照项目情况自行修改
ok,至上面的两种方法最后生成的效果是一样的,都可以看到在项目的assets目录下生成了了来了两个文件,
其中第二个文件 .meta亲测可以删除