react native unable to load script from assets ‘index.android bundle’



  • RN版本 0.56 ,遇到个比较奇葩的问题,当我用安卓机调试程序时,报以上错误

    网上给出的解答是

    • 在 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/

    问题确实解决了,但是抛出了新的问题,就是你新写的页面,再也无法更新到手机上,始终是先前的页面。
    问题在于 index.android.bundle这个文件的添加

    但是不知为什么会无法更新,求解答。。。

    最后我换了一种调试方法,前提是手机和电脑必须连入同一wifi。

    • 1.震动模拟器,选择Dev Settings

    • 2.点击Debug server & port for device

    • 3.填写电脑ip地址和端口8081 eg.10.0.0.1:8081



  • 因为有bundle就不会去访问packager了,所以永远都是bundle好的那份代码

    0_1536897990256_331ff244-b4b9-46d6-b8c6-e4407f4a0bd1-image.png



  • 谢谢分享, 确实解决了我的问题
    那段代码应该是将index拆分成旧版的index.android.bundle



  • @rainbowvs 并不是拆分,恰恰相反,是把所有js文件都打包(bundle)到一起



  • @晴明 哦,受教了.
    上面的仅仅是安卓方面做处理了
    那ios也需要这样做吗?



  • @rainbowvs
    ios会自动探测本地模拟器运行或是真机运行,并在编译时生成一个ip.txt文件供设备读取,所以并不需要手动输入ip,也没有你可以输入ip的地方。
    android目前也会自动根据原装模拟器或是genymotion自动调用固定的宿主机ip(10.0.2.2或是10.0.3.2),对于真机也会自动调用adb reverse来走usb端口,所以大多数情况下android其实也不用输入ip。但是现实情况很复杂,很难说哪个步骤碰到问题,如果报错连不上,那么就手动输入ip修正咯。


Log in to reply