以下是常見問題和建議的解決方法。您可以在 Gradle 論壇 和 StackOverflow #gradle 答案中取得其他提示並搜尋。
安裝疑難排解
如果您已遵循 安裝說明,但無法執行 Gradle 建置,以下是可能有助益的一些提示。
如果您在僅呼叫 Gradle Wrapper 外部安裝 Gradle,您可以在終端機中執行 gradle --version
來檢查 Gradle 安裝。
您應該會看到類似這樣的內容
❯ gradle --version ------------------------------------------------------------ Gradle 6.5 ------------------------------------------------------------ Build time: 2020-06-02 20:46:21 UTC Revision: a27f41e4ae5e8a41ab9b19f8dd6d86d7b384dad4 Kotlin: 1.3.72 Groovy: 2.5.11 Ant: Apache Ant(TM) version 1.10.7 compiled on September 1 2019 JVM: 14 (AdoptOpenJDK 14+36) OS: Mac OS X 10.15.2 x86_64
如果不是,以下是您可能看到的其他內容。
找不到指令:gradle
如果您收到「找不到指令:gradle」,您必須確保 Gradle 已正確新增到您的 PATH
。
JAVA_HOME 設定為無效目錄
如果您收到類似這樣的錯誤
ERROR: JAVA_HOME is set to an invalid directory
將環境中的 JAVA_HOME 變數設定為與 Java 安裝位置相符
$ export JAVA_HOME=/Users/user/Library/Java/JavaVirtualMachines/corretto-11.0.22/Contents/Home $ echo $JAVA_HOME /Users/user/Library/Java/JavaVirtualMachines/corretto-11.0.22/Contents/Home
您必須確保已正確安裝 8 或更高版本的Java Development Kit,設定 JAVA_HOME
環境變數,並將Java 加入您的 PATH
。
權限遭拒
如果您收到「權限遭拒」訊息,表示 Gradle 可能存在於正確的位置,但無法執行。您可以在 *nix 系統上使用 chmod +x path/to/executable
來解決此問題。
其他安裝失敗
如果 gradle—- version
有效,但所有組建都因相同的錯誤而失敗,則可能是您的其中一個 Gradle 組建組態指令碼損毀。
您可以透過執行 gradle help
來驗證 Gradle 指令碼的問題,此指令會執行組態指令碼,但不會執行任何 Gradle 任務。如果錯誤持續發生,表示組建組態有問題。如果不是,則問題存在於執行一個或多個要求的任務時(Gradle 會先執行組態指令碼,再執行組建步驟)。
除錯緩慢的組建
對於組建效能問題(包括「同步時間過長」),請參閱改善 Gradle 組建的效能。
Android 開發人員應觀看 Android SDK 工具團隊關於 加速 Android Gradle 建置 的簡報。Android Studio 使用者指南中也涵蓋許多提示,關於最佳化建置速度。
偵錯建置邏輯
將偵錯器附加到您的建置
您可以在 Gradle 建置本身中設定中斷點和偵錯 buildSrc
和獨立外掛程式,方法是將 org.gradle.debug
屬性設定為「true」,然後將遠端偵錯器附加到埠 5005。您可以透過將 org.gradle.debug.port
屬性設定為所需的埠號來變更埠號。
若要透過網路遠端附加偵錯器,您必須將 org.gradle.debug.host
屬性設定為電腦的 IP 位址或 *
(在所有介面中監聽)。
❯ gradle help -Dorg.gradle.debug=true
使用 Kotlin DSL,您可以偵錯建置指令碼本身。
下列影片示範如何使用 IntelliJ IDEA 偵錯範例建置。

新增和變更記錄
除了 控制記錄詳細程度 之外,您還可以使用 --console=verbose
旗標 在生命週期記錄中控制任務結果的顯示(例如「UP-TO-DATE」)。
可以在 $GRADLE_USER_HOME/daemon/8.7/ 下找到 Gradle Daemon 的其他記錄。
|
任務在應該為 UP-TO-DATE 時執行
--info
記錄會說明為何執行任務,不過建置掃描會透過前往時間軸檢視並按一下您要檢查的任務,以可搜尋且視覺化的方式執行此操作。

您可以從 此清單 中瞭解任務結果的意義。
偵錯 IDE 整合
IDE 中許多不頻繁發生的錯誤都可以透過「重新整理」Gradle 來解決。另請參閱更多關於在 IntelliJ IDEA 和 Eclipse 中使用 Gradle 的文件。
重新整理 IntelliJ IDEA
這僅適用於 連結到 IntelliJ 的 Gradle 專案。 |
從主選單中,前往 檢視
> 工具視窗
> Gradle
。然後按一下重新整理圖示。

重新整理 Eclipse(使用 Buildship)
如果您正在為 Eclipse IDE 使用 Buildship,您可以透過開啟「Gradle 任務」檢視並按一下「重新整理」圖示,或是在編輯 Gradle 腳本時從內容功能表執行 Gradle
> 重新整理 Gradle 專案
指令,重新同步您的 Gradle 組建。

疑難排解守護程式連線問題
如果您的 Gradle 組建在執行任何任務之前失敗,您可能會遇到網路組態問題。當 Gradle 無法與 Gradle 守護程式程序通訊時,組建會立即失敗,並顯示類似以下訊息
$ gradle help
Starting a Gradle Daemon, 1 stopped Daemon could not be reused, use --status for details
FAILURE: Build failed with an exception.
* What went wrong:
A new daemon was started but could not be connected to: pid=DaemonInfo{pid=55913, address=[7fb34c82-1907-4c32-afda-888c9b6e2279 port:42751, addresses:[/127.0.0.1]], state=Busy, ...
當使用網路位址轉譯 (NAT) 偽裝時,可能會發生這種情況。當啟用 NAT 偽裝時,應視為電腦本機的連線會被偽裝成來自外部 IP 位址。作為安全防護措施,Gradle 會拒絕連線到任何外部 IP 位址。
解決此問題的方法是調整您的網路組態,讓本機連線不會被修改成顯示為來自外部位址。
您可以在守護程式記錄檔 ($GRADLE_USER_HOME/daemon/<Gradle 版本>/daemon-<PID>.out.log
) 中監控偵測到的網路設定和連線要求。
2021-08-12T12:01:50.755+0200 [DEBUG] [org.gradle.internal.remote.internal.inet.InetAddresses] Adding IP addresses for network interface enp0s3
2021-08-12T12:01:50.759+0200 [DEBUG] [org.gradle.internal.remote.internal.inet.InetAddresses] Is this a loopback interface? false
2021-08-12T12:01:50.769+0200 [DEBUG] [org.gradle.internal.remote.internal.inet.InetAddresses] Adding remote address /fe80:0:0:0:85ba:3f3e:1b88:c0e1%enp0s3
2021-08-12T12:01:50.770+0200 [DEBUG] [org.gradle.internal.remote.internal.inet.InetAddresses] Adding remote address /10.0.2.15
2021-08-12T12:01:50.770+0200 [DEBUG] [org.gradle.internal.remote.internal.inet.InetAddresses] Adding IP addresses for network interface lo
2021-08-12T12:01:50.771+0200 [DEBUG] [org.gradle.internal.remote.internal.inet.InetAddresses] Is this a loopback interface? true
2021-08-12T12:01:50.771+0200 [DEBUG] [org.gradle.internal.remote.internal.inet.InetAddresses] Adding loopback address /0:0:0:0:0:0:0:1%lo
2021-08-12T12:01:50.771+0200 [DEBUG] [org.gradle.internal.remote.internal.inet.InetAddresses] Adding loopback address /127.0.0.1
2021-08-12T12:01:50.775+0200 [DEBUG] [org.gradle.internal.remote.internal.inet.TcpIncomingConnector] Listening on [7fb34c82-1907-4c32-afda-888c9b6e2279 port:42751, addresses:[localhost/127.0.0.1]].
...
2021-08-12T12:01:50.797+0200 [INFO] [org.gradle.launcher.daemon.server.DaemonRegistryUpdater] Advertising the daemon address to the clients: [7fb34c82-1907-4c32-afda-888c9b6e2279 port:42751, addresses:[localhost/127.0.0.1]]
...
2021-08-12T12:01:50.923+0200 [ERROR] [org.gradle.internal.remote.internal.inet.TcpIncomingConnector] Cannot accept connection from remote address /10.0.2.15.
取得其他協助
如果您在此處找不到解決方案,請在 協助論壇 上與 Gradle 社群聯繫,或使用 help.gradle.org 搜尋相關開發人員資源。
如果您認為您已在 Gradle 中找到錯誤,請在 GitHub 上 提交問題。