打包react native的代碼,和打包原生安卓有點(diǎn)不一樣。因?yàn)橹苯佑肁ndroid studio打包,并不會(huì)把js代碼打包到apk中,就會(huì)導(dǎo)致react native打包的apk安裝后運(yùn)行直接閃退。所以要分成兩步,第一步,打包成react native寫的js代碼,第二步,用Android studio打包成apk(也可以用命令行打包,根據(jù)官網(wǎng)教程打包即可,傳送門)。
1 打包react native代碼
1.1 進(jìn)入項(xiàng)目根目錄
1.2 運(yùn)行命令
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/
這里需要注意的是,如果你的項(xiàng)目react-native版本比較低,則參數(shù)--entry-file的值index.js要改成index.android.js。也就是說,如果你的入口文件只有一個(gè),那肯定就是index.js了。如果有兩個(gè),index.android.js和index.ios.js,那說明是較早版本的react-native項(xiàng)目,安卓和iOS的入口文件是分開的。
入口文件為index.android.js的完整命令如下:
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 打包成apk
第1步完成之后,再按照原生項(xiàng)目打包流程走就好了。
注:此篇文章需要有開發(fā)原生安卓的基礎(chǔ)(至少有打包原生安卓的基礎(chǔ))
3 可能出現(xiàn)的錯(cuò)誤
ENOENT: no such file or directory, open 'android/app/src/main/assets/index.android.bundle'
只需要在安卓的mian路徑下建一個(gè)assets文件夾即可