【问题标题】:Where are Gradle logs?Gradle 日志在哪里?
【发布时间】:2016-06-04 04:10:57
【问题描述】:

在 Android Studio 中为应用构建 Gradle 会产生以下错误:

Error:Execution failed for task ':app:compileDebugJavaWithJavac'.
> java.lang.RuntimeException: failure, see logs for details.
cannot generate view binders com.sun.tools.javac.code.Symbol$CompletionFailure: class file for android.view.View$InvalidateInfo not found

谁能提供有关在哪里可以找到日志的提示?

最初我认为这是一个非常初级的问题,以至于简单的答案会在顶部弹出以便快速搜索,但我没有找到它。

请注意,此问题是关于日志,而不是针对此特定错误。此错误消息仅用作示例。如果您好奇,这个特定的错误是由于在 build.gradle 中没有使用最新版本 (23) 的 compileSdkVersion 造成的。

【问题讨论】:

  • 能不能把你的build.gradle文件贴出来,经常出现这样的错误是因为build.gradle中的数据不一致
  • 非常感谢您的快速回复。我不想用 Gradle 文件分散人们的注意力。该错误与数据绑定有关,我可以通过删除数据绑定来消除该错误。这个问题是关于日志的一般问题,而不是针对特定错误。我将更新问题以澄清这一点。

标签: android-studio android-gradle-plugin


【解决方案1】:

在 Android Studio 4(现在至少 4.2.1)中,ab 按钮和 Toggle View 按钮(在另一个答案中提到)都消失了,因此 Android Studio 不会在 Build View 中显示日志不再,但是如果 gradle 同步失败,有一个按钮可以让你在 Android Studio 之外查看想法日志(见下面最右边的按钮),标题为“在 Finder 中显示日志”(至少在 MacOS Android Studio 中) .

【讨论】:

    【解决方案2】:

    在 Windows 版本的 Android Studio 中,应该有一个“在资源管理器中显示日志”链接,它将显示 Gradle 日志:

    【讨论】:

      【解决方案3】:

      查看 -> 工具窗口 -> 构建。

      左侧面板上有一个小的“ab”按钮。

      当前构建的所有 gradle 日志都在那里。

      编辑:AndroidStudio 3.3 有新图标

      【讨论】:

      • 图标变了,但还在。将鼠标悬停在“切换视图”上时的提示文字。
      • 救了我的命。 Kotlin 编译器显示了一堆我没有发现有用的堆栈跟踪
      • 按钮已消失。现在你点击最上面一行(“Build: ...”)来显示整个日志。
      【解决方案4】:

      您也可以尝试像这样运行您的任务:

      >gradlew --info build

      你会得到一堆有用的日志信息

      【讨论】:

      • 为什么要投反对票? Gradle 本身在其输出的底部打印Run with --info or --debug option to get more log output. “啊,现在的孩子们,他们避开了神圣的终端”
      • 这是我需要的,在命令行中查看完整的扩展日志。这是有用且很好的答案!我正在使用 Gradle 5.5.1
      • 这正是我所需要的。 Android Studio 只报告了“读取超时”,没有别的。烦人。
      【解决方案5】:

      Gradle 不会将其日志重定向到 Android Studio 中的单独文件中。

      因此,如果要在文件中查看它们,则需要在终端中使用命令构建 gradle 并将 gradle 输入重定向到文件。

      gradlew build > myLogs.txt 2>&1
      

      此命令会将所有标准输出和错误消息从 gradle build 重定向到项目文件夹中名为 myLogs.txt 的文件。

      gradlew build > myLogs.txt 2> logErrors.txt
      

      此命令会将 Gradle 日志中的所有标准输出重定向到 myLogs.txt,并将所有错误消息重定向到 logErrors.txt

      在 Windows 10 上测试并完美运行。

      Here 是有关如何将标准输出从命令重定向到不同文件的更多信息。

      【讨论】:

      • 感谢您的回答。我在 Windows 10 上运行 Android。您的意思是在 Android Studio 中运行 Gradle 不会生成日志文件吗?
      • 是的。我也在 Windows 10 上运行它,我似乎无法找到一种方法来使用类似 tee 的命令通过终端运行 gradlew 构建脚本。所以有两个选项 - 使用 Windows 支持的类似 tee 的命令运行命令,或者通过上面链接中所述的 Log4j 导航钩子。
      • 明天上班我会尝试在 Ubuntu 上执行这个命令,看看它是否有效。我已经读到这是您可以将日志存储在标准输出之外的方式
      • 我进行了搜索,发现 gradle 没有为外部文件提供通用的日志记录选项。此处建议这样做:discuss.gradle.org/t/logging-to-console-and-file/8635 以及其他一些论坛帖子。
      • 你好,我检查了一下,发现gradle只在Android Studio的标准输出中输出它的日志。如果您需要在单独的文件中查看它们,则应使用命令构建项目并将输出重定向到文件。我会更新我的答案。刚刚测试过,它在 Windows 10 上运行良好
      猜你喜欢
      • 2019-07-13
      • 1970-01-01
      • 1970-01-01
      • 2016-03-10
      • 2021-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多