今天手賤把react-native android項(xiàng)目的cache和~/.gradle的cache全刪了摩幔,再次搭建android的編譯環(huán)境時(shí),一切編譯正常鞭铆,并且打debug包的時(shí)候可以正常運(yùn)行或衡,無(wú)報(bào)錯(cuò)。
但是當(dāng)我打release包的時(shí)候车遂, 系統(tǒng)啟動(dòng)日志提示我:unable to load scripts from assets 'index.android.bundle' on real device封断。
一開始我以為是我的打包腳本出問(wèn)題了,index.android.bundle這個(gè)bundle文件不存在舶担,去對(duì)應(yīng)的目錄中檢查了一遍坡疼,結(jié)果發(fā)現(xiàn)是有的。
于是又去google柄沮,發(fā)現(xiàn)遇到這個(gè)問(wèn)題的人挺多回梧,但是都是在debug的時(shí)候會(huì)遇到,經(jīng)過(guò)一番探索祖搓,終于發(fā)現(xiàn)狱意,原來(lái)我為了加快android build的速度,在~/.gradle/gradle.properties這個(gè)文件中添加了
org.gradle.configureondemand=true
首先說(shuō)一下~/.gradle/gradle.properties這個(gè)文件的用途拯欧,~/.gradle/gradle.properties這個(gè)文件主要是用來(lái)個(gè)人全局配置gradle編譯option的详囤,一些與gradle設(shè)置相關(guān)的參數(shù)可以寫在這里面,比如:
????org.gradle.daemon=true?就是讓你讓你編譯時(shí)使用守護(hù)進(jìn)程镐作。
? ??org.gradle.parallel=true?使用并行編譯
? ??org.gradle.jvmargs=-Xmx2048m?JVM最大允許分配的堆內(nèi)存藏姐,按需分配
? ??-XX:MaxPermSize=512m?JVM最大允許分配的非堆內(nèi)存,按需分配
而org.gradle.configureondemand=true則表示屏蔽一些task该贾,所以當(dāng)開啟這個(gè)選項(xiàng)的時(shí)候羔杨,react-native中的一些task并沒(méi)有被運(yùn)行,導(dǎo)致打出來(lái)的包會(huì)報(bào)出:Unable to load script from assets index.android.bundle 這個(gè)錯(cuò)誤杨蛋。
如果你也遇到了這個(gè)問(wèn)題兜材,趕緊檢查一下你的gradle配置吧理澎!