1. 程式人生 > >Android stdio gradle更新後 專案出錯 無法編譯

Android stdio gradle更新後 專案出錯 無法編譯

gradle更新後項目出錯。

我的版本:

android studio 3.0.1

gradle 2.3.3

 

檢視錯誤報告可知

Error:Unable to start the daemon process.
This problem might be caused by incorrect configuration of the daemon.
For example, an unrecognized jvm option is used.
Please refer to the user guide chapter on the daemon at https://docs.gradle.org/3.3/userguide/gradle_daemon.html
Please read the following process output to find out more:
-----------------------
Error occurred during initialization of VM
Could not reserve enough space for 1572864KB object heap

錯誤是在VM虛擬機器初始化時候出錯的。是堆分配時記憶體不足導致

此時開啟專案的gradle.properties 檔案

可以看到其中有一個關於jvm的分配設定

將其中的 org.gradle.jvmargs=-Xmx1536m

改小一些,即可成功編譯

如 org.gradle.jvmargs=-Xmx512m(大小是針對自己的電腦記憶體情況而言)

ps:-Xmx:JVM 允許分配的最大堆記憶體

還有:

-Xms:JVM 起始分配的堆記憶體
-XX:MaxPermSize:JVM 最大允許分配的非堆記憶體
-XX:ReservedCodeCacheSize:JIT 編譯後的最大程式碼快取

 

這一個修改只是只是針對這一個專案而言,對於其他專案很可能還是有這樣的錯誤,

要一勞永逸的修改,可以到如下的安裝目錄下,寫配置檔案,解決。

/home/使用者名稱/.gradle/ (Linux)
/Users/使用者名稱/.gradle/ (Mac)
C:\Users\使用者名稱\.gradle (Windows)

例如,Windows系統中,開啟其中的.gradle目錄,新建gradle.properties檔案。

輸入:

 org.gradle.jvmargs=-Xmx1024m -XX:MaxPermSize=512m

儲存後,以後所有新建的專案都會以此為預設配置

 

新建專案後,可以看到專案中的gradle.properties中,並不是在配置檔案中的值,這是因為配置檔案的值是一種覆蓋。

配置檔案中org.gradle.jvmargs=-Xmx1024m 覆蓋了 專案檔案中設定。

 

其實,這個涉及到android studio 調優的知識,更細節的可以看篇文章。

8個技巧倍速提升Gradle構建