调试 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 服务,例如地图或登录)。