Где журналы Gradle?

92

Сборка Gradle для приложения в Android Studio генерирует следующую ошибку:

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

Может кто-нибудь подскажет, где найти логи?

Сначала я думал, что это настолько элементарный вопрос, что простой ответ появится вверху для быстрого поиска, но мне не удалось его найти.

Обратите внимание, что этот вопрос касается журналов , а не этой конкретной ошибки. Это сообщение об ошибке используется только в качестве примера. Если вам интересно, эта конкретная ошибка была вызвана неиспользованием последней версии (23) для compileSdkVersion в build.gradle.

Hong
источник
Можете ли вы опубликовать свой файл build.gradle, часто такие ошибки возникают из-за несоответствия данных в build.gradle
Красимир Стоев
2
Большое спасибо за быстрый ответ. Не хочу отвлекать людей файлом Gradle. Ошибка связана с привязкой данных, и я могу устранить ошибку, удалив привязку данных. Это общий вопрос о журналах, а не о конкретной ошибке. Я обновлю вопрос, чтобы прояснить это.
Гонконг,

Ответы:

74

Gradle не перенаправляет свои журналы в отдельный файл в Android Studio.

Поэтому, если вы хотите просмотреть их в файле, вам нужно создать gradle с помощью команды в терминале и перенаправить ввод Gradle в файл.

gradlew build > myLogs.txt 2>&1

Эта команда перенаправит весь стандартный вывод и сообщения об ошибках из сборки gradle в файл myLogs.txt в папке проекта.

gradlew build > myLogs.txt 2> logErrors.txt

Эта команда перенаправит весь стандартный вывод из журналов Gradle в файл myLogs.txt, а все сообщения об ошибках - в файл logErrors.txt.

Протестировано в Windows 10 и отлично работает.

Вот дополнительная информация о том, как перенаправить стандартный вывод команд в разные файлы.

Красимир Стоев
источник
Спасибо за ответ. Я использую Android в Windows 10. Вы имели в виду, что при запуске Gradle в Android Studio файлы журналов не создаются?
Гонконг,
1
Да. Я также запускаю его в Windows 10, и я не могу найти способ запустить скрипт сборки gradlew через терминал с помощью команды типа tee. Итак, есть два варианта - запустить команду с помощью команды типа tee, которая поддерживается в Windows, или перейти к ловушке через Log4j, как указано в приведенной выше ссылке.
Красимир Стоев
1
Завтра на работе я попробую выполнить эту команду в Ubuntu и посмотрю, сработает ли она. Я читал, что таким образом вы можете хранить свои журналы вне стандартного вывода
Красимир Стоев
1
Я провел поиск и обнаружил, что gradle не предоставляет общий параметр ведения журнала для внешнего файла. Это предлагается здесь: Discussion.gradle.org/t/logging-to-console-and-file/8635, а также в некоторых других сообщениях форума.
Красимир Стоев
1
И снова здравствуйте, я проверил, и оказалось, что gradle выводит свои логи только в стандартный вывод в Android Studio. Если вам нужно увидеть их в отдельном файле, вы должны собрать свой проект с помощью команды и перенаправить вывод в файл. Я обновлю свой ответ. Только что протестировал, и он отлично работает на windows 10
Красимир Стоев
42

Вид -> Окна инструментов -> Сборка.

На левой панели есть маленькая кнопка «ab».

введите описание изображения здесь

Здесь есть все журналы gradle для текущей сборки.

введите описание изображения здесь

РЕДАКТИРОВАТЬ : есть новый значок из AndroidStudio 3.3

введите описание изображения здесь

Ашакиров
источник
5
Значок изменился, но остался. Текст подсказки при наведении на него «Переключить вид».
methodignature
1
Спас мою жизнь. Компилятор Kotlin показывал кучу трассировок стека, которые я не нашел полезными
peterchaula
5
Кнопка исчезла. Теперь вы нажимаете на верхнюю строку («Build: ...»), чтобы показать весь журнал.
Эрик Браун,
14

Вы также можете попробовать запустить свою задачу так:

> gradlew --info build

Вы получите кучу полезной информации журнала

Аяксиан Красич
источник
6
почему против? Сам Gradle печатает Run with --info or --debug option to get more log output.внизу своего вывода: «Ах, дети в наши дни, они избегают святого терминала»
Antek
Это то, что мне нужно, чтобы увидеть полный развернутый журнал в командной строке. Это полезный и хороший ответ! Я использую Gradle 5.5.1
Дэвид