Android stdio gradle更新後 項目出錯 無法編譯

gradle更新後項目出錯。

我的版本:

android studio 3.0.1

gradle 4.1

 

查看錯誤報告可知

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 編譯後的最大代碼緩存

 

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


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

其中有多種方法。

介紹兩種:

1.例如,Windows系統中,打開其中的.gradle目錄,新建gradle.properties文件。

/home/用戶名/.gradle/ (Linux)
/Users/用戶名/.gradle/ (Mac)
C:\Users\用戶名\.gradle (Windows)

輸入:

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

保存後,以後所有新建的項目都會以此爲默認配置

 

新建項目後,可以看到項目中的gradle.properties中,並不是在配置文件中的值,仍然是以前的值。但是卻可以編譯通過了。

這是因爲新建的配置文件的值 是一種覆蓋。

配置文件中org.gradle.jvmargs=-Xmx1024m 覆蓋了 當前項目文件中設置。

(其實,這個涉及到android studio 調優的知識,更細節的可以看篇文章。8個技巧倍速提升Gradle構建

2.另外一個方法,則可以修改 項目的gradle.properties的值

打開androidstudio安裝路徑:\android-studio\plugins\android\lib\templates\gradle-projects

可以看到MewAndroidModule、NewAndroidProject 等文件夾。進入後找到root路徑

打開gradle.properties.ftl文件,可以看到

修改到合適的值後,保存即可。

ps:這個目錄下有很多值得探索的地方。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章