通過設置JDK解決存在多個Gradle后台進程的問題


使用Android Studio經常會在Event Log窗口遇到如下報錯:

21:42	Android Studio is using the following JDK location when running Gradle:
			C:\Program Files\Android\Android Studio\jre
			Using different JDK locations on different processes might cause Gradle to
			spawn multiple daemons, for example, by executing Gradle tasks from a terminal
			while using Android Studio.
			More info...
			Select a JDK from the File System
			Do not show this warning again

可以通過如下指引了解詳細信息:

https://docs.gradle.org/current/userguide/gradle_daemon.html#sec:why_is_there_more_than_one_daemon_process_on_my_machine

簡單解釋下就是如果后台有一個常駐的gradle守護進程,可以提高我們構建效率。因為這樣不但可以避免每次都重新啟動JVM,並且可以緩存項目結構、文件、任務等信息。每次啟動AS的時候,你可能會注意到如下這個提示,其實就是AS默認打開了gradle守護進程:

但是如果使用守護進程特性會有一個問題,就是可能會出現多個守護進程的場景,這是因為守護進程可能在某些方面無法滿足請求構建環境。比如如果守護進程運行在Java 8運行時,但是請求的環境調用Java 10,那么守護進程是不兼容的,必須啟動另一個。此外,Java運行時的某些屬性在JVM啟動后無法更改。這也可能導致出現多個守護進程。

為了避免出現這種情況,一個最好的解決方式時我們每次使用gradle進行項目構建時,盡量使用相同的JDK配置。如果我們在命令行中使用gradle,會自動使用JAVA_HOME環境變量指向的JDK,如果在AS中使用gradle,使用的是如下指向的JDK

所以為了兩者一致,我們需要將此處的JDK改為JAVA_HOME環境變量指向的JDK。修改完之后AS的告警提示信息也自然消失了。

另外注意下從Gradle 6.3版本才開始正式支持JDK 14: https://docs.gradle.org/6.3/release-notes.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM