Wo sind Gradle-Protokolle?

92

Gradle Build für eine App in Android Studio generiert den folgenden Fehler:

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

Könnte jemand einen Tipp geben, wo die Protokolle zu finden sind?

Anfangs dachte ich, dies sei eine so rudimentäre Frage, dass die einfache Antwort für eine schnelle Suche oben auftauchte, aber ich konnte sie nicht finden.

Bitte beachten Sie, dass sich diese Frage auf die Protokolle bezieht , nicht auf diesen speziellen Fehler. Diese Fehlermeldung dient nur als Beispiel. Falls Sie neugierig sind, wurde dieser spezielle Fehler dadurch verursacht, dass die neueste Version (23) für compileSdkVersion in build.gradle nicht verwendet wurde.

Hong
quelle
Können Sie Ihre build.gradle-Datei veröffentlichen, treten solche Fehler häufig aufgrund von Dateninkonsistenzen in build.gradle auf
Krasimir Stoev
2
Vielen Dank für Ihre schnelle Antwort. Ich möchte die Leute mit der Gradle-Datei nicht ablenken. Der Fehler hängt mit der Datenbindung zusammen, und ich kann den Fehler beseitigen, indem ich eine Datenbindung entferne. Diese Frage ist eine allgemeine Frage zu den Protokollen, nicht für den spezifischen Fehler. Ich werde die Frage aktualisieren, um dies zu klären.
Hong

Antworten:

74

Gradle leitet seine Protokolle in Android Studio nicht in eine separate Datei um.

Wenn Sie sie daher in einer Datei anzeigen möchten, müssen Sie gradle mit einem Befehl im Terminal erstellen und die gradle-Eingabe in eine Datei umleiten.

gradlew build > myLogs.txt 2>&1

Dieser Befehl leitet alle Standardausgabe- und Fehlermeldungen von gradle build in eine Datei namens myLogs.txt im Projektordner um.

gradlew build > myLogs.txt 2> logErrors.txt

Dieser Befehl leitet alle Standardausgaben von Gradle-Protokollen an myLogs.txt und alle Fehlermeldungen an logErrors.txt um

Getestet unter Windows 10 und funktioniert einwandfrei.

Hier finden Sie weitere Informationen zum Umleiten der Standardausgabe von Befehlen in verschiedene Dateien.

Krasimir Stoev
quelle
Danke für die Antwort. Ich verwende Android unter Windows 10. Meinten Sie, dass das Ausführen von Gradle in Android Studio keine Protokolldateien generiert?
Hong
1
Ja. Ich führe es auch unter Windows 10 aus und kann anscheinend keine Möglichkeit finden, das Gradlew-Build-Skript mit einem tee-ähnlichen Befehl über das Terminal auszuführen. Es gibt also zwei Möglichkeiten: Führen Sie den Befehl mit einem tee-ähnlichen Befehl aus, der unter Windows unterstützt wird, oder navigieren Sie über einen Log4j durch einen Hook, wie im obigen Link angegeben.
Krasimir Stoev
1
Morgen bei der Arbeit werde ich versuchen, diesen Befehl unter Ubuntu auszuführen und ich werde sehen, ob es funktioniert. Ich habe gelesen, dass Sie auf diese Weise Ihre Protokolle außerhalb der Standardausgabe speichern können
Krasimir Stoev
1
Ich habe eine Suche durchgeführt und festgestellt, dass gradle keine allgemeine Protokollierungsoption für eine externe Datei bietet. Dies wird hier empfohlen: diskutieren.gradle.org/t/logging-to-console-and-file/8635 und auch in einigen anderen Forenbeiträgen.
Krasimir Stoev
1
Hallo nochmal, ich habe es überprüft und es stellt sich heraus, dass gradle seine Protokolle nur in der Standardausgabe in Android Studio ausgibt. Wenn Sie sie in einer separaten Datei anzeigen möchten, sollten Sie Ihr Projekt mit einem Befehl erstellen und die Ausgabe in eine Datei umleiten. Ich werde meine Antwort aktualisieren. Gerade getestet und es funktioniert gut unter Windows 10
Krasimir Stoev
42

Ansicht -> Tool Windows -> Erstellen.

Auf der linken Seite befindet sich eine kleine "ab" -Taste.

Geben Sie hier die Bildbeschreibung ein

Alle Gradle-Protokolle für den aktuellen Build sind vorhanden.

Geben Sie hier die Bildbeschreibung ein

BEARBEITEN : Es gibt ein neues Symbol von AndroidStudio 3.3

Geben Sie hier die Bildbeschreibung ein

Ashakirov
quelle
5
Das Symbol hat sich geändert, ist aber immer noch vorhanden. Tipp Text auf Hover it "Ansicht umschalten".
Methodensignatur
1
Hat mein Leben gerettet. Der Kotlin Compiler wurde ein Stapel von Stack - Traces zeigt , die ich nicht useul das finden
peterchaula
4
Der Knopf ist weggegangen. Klicken Sie nun auf die oberste Zeile ("Build: ..."), um das gesamte Protokoll anzuzeigen.
Erik Browne
14

Sie können auch versuchen, Ihre Aufgabe folgendermaßen auszuführen:

> gradlew --info bauen

Sie erhalten eine Reihe nützlicher Protokollinformationen

Ajaxian Krasic
quelle
6
warum abstimmen? Gradle selbst druckt Run with --info or --debug option to get more log output.am Ende seiner Ausgabe "Ah, die Kinder meiden heutzutage das heilige Terminal"
Antek
Dies ist, was ich brauche, um die vollständige erweiterte Anmeldebefehlszeile zu sehen. Dies ist eine nützliche und gute Antwort! Ich benutze Gradle 5.5.1
David