轉(zhuǎn)載請標(biāo)明出處 http://www.reibang.com/p/3bef454874fc 本文出自:【wzhwcp的博客】
FAILURE: Build failed with an exception.
What went wrong: Execution failed for task ':app:preDexDebug'. com.android.ide.common.internal.LoggedErrorException: Failed to run command: /Applications/Android Studio.app/sdk/build-tools/android-4.4W/dx --dex --output /Users/alex/AndroidStudioProjects/SilentSMS/app/build/intermediates/pre-dexed/debug/android-4.3_r2.1-f22bbff4d1017230e169a4844a9c2195f13060d2.jar /Users/alex/AndroidStudioProjects/SilentSMS/app/libs/android-4.3_r2.1.jar
Error Code: 3 Output:
在用真機(jī)開發(fā)調(diào)試的過程中菩浙,好幾臺安卓機(jī)子都可以運(yùn)行調(diào)試apk爽丹,但偏偏用到 Mei M1 metal這機(jī)子來調(diào)試的時(shí)候产徊,卻怎么裝也裝不上,在Gradle 構(gòu)建的過程中,就發(fā)生了如上所示的錯誤。 后面在
https://stackoverflow.com/questions/25013638/android-studio-google-jar-file-causing-gc-overhead-limit-exceeded-error
這里找到了相應(yīng)的解決方法:
在Android Studio 工程中的鸭轮,app目錄下的build.gradle文件添加
android{
......
dexOptions {
javaMaxHeapSize "4g"
}
}
就奇跡般的把問題解決了,那么為什么增加這個(gè)就有用了呢橄霉,經(jīng)過搜索窃爷,又在https://stackoverflow.com/questions/33750404/android-gradle-what-is-javamaxheapsize-4g
這里找到了相應(yīng)的回答
it is just an option to specify the maximum memory allocation pool for a Java Virtual Machine (JVM) for dex operation. And it's the same, as to provide to java the -xmx argument. Due to it's source codes from [here](https://android.googlesource.com/platform/tools/build/+/master/gradle/src/main/groovy/com/android/build/gradle/internal/dsl/DexOptionsImpl.groovy), it's setter look like:
這里翻譯一下,大概的意思就是說:給虛擬機(jī)分配指定最大的內(nèi)存來生成dex相關(guān)文件的操作姓蜂,這個(gè)和java -xmx參數(shù)是一樣的效果按厘。
由于Android Studio 用的是Gradle 來構(gòu)建項(xiàng)目,而Gradle又是運(yùn)行在java 虛擬機(jī)上的钱慢,所以就有我們上面所說的問題刻剥,由于給Gradle 的jvm分配太少的內(nèi)存,導(dǎo)致Gradle構(gòu)建項(xiàng)目失敗滩字。從上面可以知道造虏,通過設(shè)置 java -xmx 參數(shù)也是可以達(dá)到相同的效果,那么麦箍,在Android Studio上如何設(shè)置呢漓藕,在項(xiàng)目根目錄下,找到gradle.properties文件挟裂,設(shè)置文件下的這個(gè):org.gradle.jvmargs=-Xmx1536m即可修改給Gradle 分配指定最大的內(nèi)存享钞,這里分配最大1536兆字節(jié)的內(nèi)存。
彩蛋:后面我發(fā)現(xiàn)我的項(xiàng)目會出現(xiàn)這個(gè)問題的根本原因是诀蓉,在開發(fā)過程中栗竖,這個(gè)gradle.properties文件不知怎么的,居然不見了渠啤,不見了~~當(dāng)發(fā)現(xiàn)的那一刻狐肢,我的內(nèi)心是奔潰的……
參考:
https://docs.gradle.org/current/userguide/gradle_daemon.html
https://zhidao.baidu.com/question/1990600809932485307.html