问题:org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0
生活随笔
收集整理的這篇文章主要介紹了
问题:org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
??在用as開發項目的過程中,我碰到了這個錯誤,在網上找到了如下的解決方法,做下總結:
- 被編譯的代碼或資源有問題( finished with non-zero exit value 1):
出現這種編譯異常表現是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 |
上面這種錯誤沒有給出很顯示的提示,但是可以知道是在執行Error:Execution failed for task ':app:transformClassesWithDexForDebug'這一步出錯了,至少縮小了錯誤的排查范圍,這個時候就需要經驗來判斷了,自己之前改過什么,自己回想一下。有時候往上面看錯誤日志,也會發現有很明顯的錯誤提示。
- jar包沖突(finished with non-zero exit value 2):
- 編譯的dex 內存不夠
主要表現為編譯后出現finished with non-zero exit value 2錯誤,原因是jar包沖突,導致的原因可能是在dependencies中使用compile files()導入一次jar包,然后有其它jar的引入方式使用compile’com.xxx’方式,正好又引用了這個jar包,所以導致了重復引用jar包的沖突。最常見的是support-v4包的重復引用。具體報錯如下所示:
| 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 |
- 編譯的代碼過多導致內存不足(finished with non-zero exit value 3):
主要表現為編譯后出現finished with non-zero exit value 3錯誤,原因是因為編譯的java代碼過多,通常是方法數超過65535后使用了分包的機制,gradle在編譯的時候由于編譯的內存需要不能滿足而導致錯誤。具體報錯內容如下所示:
| 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代碼塊內增加如下內容即可解決:
| 12345678 | android {// ...dexOptions {javaMaxHeapSize "4g"}} |
或者修改android studio的安裝目錄下的bin目錄中的studio.vmoptions文件中的Xms和Xmx兩項,將其值改大,如下所示:
| 12 | -Xms256m-Xmx1280m |
出現這種情況的原因是因為項目太大,編譯需要更多的內存。
總結
以上是生活随笔為你收集整理的问题:org.gradle.process.internal.ExecException: Process 'command 'C:\Program Files\Java\jdk1.8.0的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装 Android studio 运行
- 下一篇: java美元兑换,(Java实现) 美元