除錯 Gradle 錯誤

以下是 Gradle 的摘錄 - 什麼是非零退出值,我該如何解決? ,請參閱完整的討論。

假設你正在開發一個應用程式,並且你會看到一些通常看起來像這樣的 Gradle 錯誤。

:module:someTask FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':module:someTask'.
> some message here...  finished with non-zero exit value X
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: Y.ZZ secs

你在這裡搜尋 StackOverflow 來解決你的問題,人們說要清理和重建你的專案,或啟用 MultiDex ,當你嘗試時,它只是沒有解決問題。

有一些方法可以獲得更多資訊 ,但 Gradle 輸出本身應指向該訊息之上的幾行中的實際錯誤:module:someTask FAILED 和通過的最後一個:module:someOtherTask。因此,如果你詢問有關錯誤的問題,請編輯你的問題以包含錯誤的更多上下文。

因此,你獲得非零退出值。那麼,這個數字是你應該嘗試修復的一個很好的指標。以下是一些最常出現的情況。

  • 1 只是一個通用錯誤程式碼,錯誤可能在 Gradle 輸出中
  • 2 似乎與重疊依賴項或專案配置錯誤有關。
  • 3 似乎來自包含太多依賴項或記憶體問題。

上述(在嘗試清理和重建專案之後)的一般解決方案是:

  • 1 - 解決上面提到的錯誤。通常,這是編譯時錯誤,這意味著專案中的某些程式碼無效。這包括 Android 專案的 XML 和 Java。
  • 23 - 這裡有很多答案告訴你啟用 multidex 。雖然它可以解決問題,但它很可能是一種解決方法。如果你不明白為什麼使用它(請參閱連結),你可能不需要它。一般解決方案涉及減少過度使用庫依賴項(例如,當你只需要使用一個庫時,例如所有 Google Play 服務,例如地圖或登入)。