Onde estão os registros do Gradle?

93

A compilação do Gradle para um aplicativo no Android Studio gera o seguinte erro:

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

Alguém poderia dar uma dica de onde encontrar os logs?

Inicialmente achei que fosse uma pergunta tão rudimentar que a resposta simples apareceria no topo para uma pesquisa rápida, mas não consegui encontrar.

Observe que esta pergunta é sobre os logs , não para este erro específico. Esta mensagem de erro é usada apenas como exemplo. Caso você esteja curioso, esse erro específico foi causado por não usar a versão mais recente (23) para compileSdkVersion no build.gradle.

Hong
fonte
você pode postar seu arquivo build.gradle, muitas vezes esses erros ocorrem devido a inconsistências de dados em build.gradle
Krasimir Stoev
2
Muito obrigado pela sua resposta rápida. Não quero distrair as pessoas com o arquivo do Gradle. O erro está relacionado à vinculação de dados e posso eliminar o erro removendo uma vinculação de dados. Esta pergunta é uma pergunta geral sobre os logs, não para o erro específico. Vou atualizar a pergunta para esclarecer isso.
Hong

Respostas:

74

O Gradle não redireciona seus registros em um arquivo separado no Android Studio.

Portanto, se quiser visualizá-los em um arquivo, você precisa criar o gradle usando um comando no terminal e redirecionar a entrada do gradle para um arquivo.

gradlew build > myLogs.txt 2>&1

Este comando redirecionará todas as saídas padrão e mensagens de erro do gradle build para um arquivo chamado myLogs.txt na pasta do projeto.

gradlew build > myLogs.txt 2> logErrors.txt

Este comando redirecionará toda a saída padrão dos registros do Gradle para myLogs.txt e todas as mensagens de erro para logErrors.txt

Testado no Windows 10 e funciona perfeitamente.

Aqui estão mais informações sobre como redirecionar a saída padrão de comandos para arquivos diferentes.

Krasimir Stoev
fonte
Obrigado pela resposta. Estou executando o Android no Windows 10. Você quis dizer que executar o Gradle no Android Studio não gera arquivos de log?
Hong
1
Sim. Também o estou executando no Windows 10 e não consigo encontrar uma maneira de executar o script de compilação do gradlew por meio do terminal usando um comando semelhante a um tee. Portanto, duas opções aqui - executar o comando com um comando semelhante a um T que é suportado no Windows ou navegar por um gancho por meio de um Log4j como dito no link acima.
Krasimir Stoev
1
Amanhã no trabalho tentarei executar este comando no Ubuntu e verei se funciona. Eu li que esta é a maneira que você pode armazenar seus logs fora da saída padrão
Krasimir Stoev
1
Fiz uma pesquisa e descobri que o Gradle não fornece uma opção de registro geral para um arquivo externo. Isso é sugerido aqui: discuss.gradle.org/t/logging-to-console-and-file/8635 e em alguns outros posts do fórum também.
Krasimir Stoev
1
Olá novamente, verifiquei e descobri que o gradle gera seus logs apenas na saída padrão do Android Studio. Se precisar vê-los em um arquivo separado, você deve construir seu projeto com um comando e redirecionar a saída para um arquivo. Vou atualizar minha resposta. Acabei de testá-lo e funciona bem no Windows 10
Krasimir Stoev
43

Exibir -> Janelas de ferramentas -> Construir.

Existe um pequeno botão "ab" no painel esquerdo.

insira a descrição da imagem aqui

Todos os logs do Gradle para a construção atual estão lá.

insira a descrição da imagem aqui

EDIT : Há um novo ícone do AndroidStudio 3.3

insira a descrição da imagem aqui

Ashakirov
fonte
5
O ícone mudou, mas ainda está lá. Texto de dica ao passar o mouse sobre "Alternar visualização".
assinatura do método
1
Salvou a minha vida. O compilador Kotlin estava mostrando uma pilha de rastreamentos de pilha que eu não achei útil
peterchaula
7
O botão desapareceu. Agora você clica na linha superior ("Build: ...") para mostrar o log completo.
Erik Browne
14

Você também pode tentar executar sua tarefa desta forma:

> gradlew --info build

Você obterá um monte de informações de registro úteis

Ajaxian Krasic
fonte
6
porque votar negativamente? O próprio Gradle imprime Run with --info or --debug option to get more log output.na parte inferior de sua saída "Ah, as crianças hoje em dia, evitam o terminal sagrado"
Antek
Isso é o que eu preciso para ver o log totalmente expandido na linha de comando. Esta é uma resposta útil e boa! Estou usando o Gradle 5.5.1
David