问题:org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0
??在用as開發(fā)項(xiàng)目的過程中,我碰到了這個錯誤,在網(wǎng)上找到了如下的解決方法,做下總結(jié):
- 被編譯的代碼或資源有問題( finished with non-zero exit value 1):
出現(xiàn)這種編譯異常表現(xiàn)是exit value 1,一般會給出錯誤提示,所以很容易排查。這種錯誤很常見,錯誤提示有時候是在日志中明顯的給出來了,如下示例所示:
| 12345678 | :app:processDebugManifest:app:processDebugResources\app\src\main\res\layout\activity_welcome.xmlError:(42, 26) No resource found that matches the given name (at 'src' with value '@drawable/welcome_03').Error:Execution failed for task ':app:processDebugResources'.com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'D:\android-sdk-windows\build-tools\22.0.1\aapt.exe'' finished with non-zero exit value 1 |
上面錯誤提示找不到welcome_03這個drawable資源。有時候沒有明顯的提示,如下面這種錯誤:
| 1234567 | :app:transformClassesWithMultidexlistForDebug UP-TO-DATE:app:transformClassesWithDexForDebug FAILEDError:Execution failed for task ':app:transformClassesWithDexForDebug'.> com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 1 |
上面這種錯誤沒有給出很顯示的提示,但是可以知道是在執(zhí)行Error:Execution failed for task ':app:transformClassesWithDexForDebug'這一步出錯了,至少縮小了錯誤的排查范圍,這個時候就需要經(jīng)驗(yàn)來判斷了,自己之前改過什么,自己回想一下。有時候往上面看錯誤日志,也會發(fā)現(xiàn)有很明顯的錯誤提示。
- jar包沖突(finished with non-zero exit value 2):
- 編譯的dex 內(nèi)存不夠
主要表現(xiàn)為編譯后出現(xiàn)finished with non-zero exit value 2錯誤,原因是jar包沖突,導(dǎo)致的原因可能是在dependencies中使用compile files()導(dǎo)入一次jar包,然后有其它jar的引入方式使用compile’com.xxx’方式,正好又引用了這個jar包,所以導(dǎo)致了重復(fù)引用jar包的沖突。最常見的是support-v4包的重復(fù)引用。具體報錯如下所示:
| 1234 | Error:Execution failed for task ':task:transformClassesWithDexForDebug'.com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException:Process 'command 'C:\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 2 |
- 編譯的代碼過多導(dǎo)致內(nèi)存不足(finished with non-zero exit value 3):
主要表現(xiàn)為編譯后出現(xiàn)finished with non-zero exit value 3錯誤,原因是因?yàn)榫幾g的java代碼過多,通常是方法數(shù)超過65535后使用了分包的機(jī)制,gradle在編譯的時候由于編譯的內(nèi)存需要不能滿足而導(dǎo)致錯誤。具體報錯內(nèi)容如下所示:
| 123456 | Error:java.lang.OutOfMemoryError: GC overhead limit exceededError:Execution failed for task ':app:transformClassesWithDexForRelease'.com.android.build.api.transform.TransformException: com.android.ide.common.process.ProcessException: java.util.concurrent.ExecutionException: com.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException: Process 'command 'C:\Java\jdk1.7.0_79\bin\java.exe'' finished with non-zero exit value 3 |
解決方案是在gradle文件中的Android代碼塊內(nèi)增加如下內(nèi)容即可解決:
| 12345678 | android {// ...dexOptions {javaMaxHeapSize "4g"}} |
或者修改android studio的安裝目錄下的bin目錄中的studio.vmoptions文件中的Xms和Xmx兩項(xiàng),將其值改大,如下所示:
| 12 | -Xms256m-Xmx1280m |
出現(xiàn)這種情況的原因是因?yàn)轫?xiàng)目太大,編譯需要更多的內(nèi)存。
總結(jié)
以上是生活随笔為你收集整理的问题:org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装 Android studio 运行
- 下一篇: DeWALT 得伟推出 PD 快充套件,