解决 Unable to load script from assets index.android.bundle

今天手贱把react-native android项目的cache和~/.gradle的cache全删了,再次搭建android的编译环境时,一切编译正常,并且打debug包的时候可以正常运行,无报错。

但是当我打release包的时候, 系统启动日志提示我:unable to load scripts from assets 'index.android.bundle' on real device

一开始我以为是我的打包脚本出问题了,index.android.bundle这个bundle文件不存在,去对应的目录中检查了一遍,结果发现是有的。

于是又去google,发现遇到这个问题的人挺多,但是都是在debug的时候会遇到,经过一番探索,终于发现,原来我为了加快android build的速度,在~/.gradle/gradle.properties这个文件中添加了

org.gradle.configureondemand=true

首先说一下~/.gradle/gradle.properties这个文件的用途,~/.gradle/gradle.properties这个文件主要是用来个人全局配置gradle编译option的,一些与gradle设置相关的参数可以写在这里面,比如:

    org.gradle.daemon=true 就是让你让你编译时使用守护进程。

    org.gradle.parallel=true 使用并行编译

    org.gradle.jvmargs=-Xmx2048m JVM最大允许分配的堆内存,按需分配

    -XX:MaxPermSize=512m JVM最大允许分配的非堆内存,按需分配

org.gradle.configureondemand=true则表示屏蔽一些task,所以当开启这个选项的时候,react-native中的一些task并没有被运行,导致打出来的包会报出:Unable to load script from assets index.android.bundle 这个错误。

如果你也遇到了这个问题,赶紧检查一下你的gradle配置吧!

参考链接: http://jp1017.top/2017/03/08/%E5%8A%A0%E9%80%9F-gradle-%E7%BC%96%E8%AF%91%E4%B9%8B%E5%B1%8F%E8%94%BD%E9%83%A8%E5%88%86-Task/

你可能感兴趣的:(解决 Unable to load script from assets index.android.bundle)