Gdzie są dzienniki Gradle?

92

Kompilacja Gradle dla aplikacji w Android Studio generuje następujący błąd:

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

Czy ktoś mógłby podpowiedzieć, gdzie znaleźć dzienniki?

Początkowo myślałem, że jest to tak prymitywne pytanie, że prosta odpowiedź pojawiłaby się u góry w celu szybkiego wyszukiwania, ale nie udało mi się jej znaleźć.

Pamiętaj, że to pytanie dotyczy dzienników , a nie tego konkretnego błędu. Ten komunikat o błędzie jest używany jako przykład. Jeśli jesteś ciekawy, ten konkretny błąd został spowodowany przez niestosowanie najnowszej wersji (23) dla compileSdkVersion w build.gradle.

Hong
źródło
czy możesz wysłać swój plik build.gradle, często takie błędy występują z powodu niespójności danych w build.gradle
Krasimir Stoev
2
Bardzo dziękuję za szybką odpowiedź. Nie chcę rozpraszać ludzi plikiem Gradle. Błąd jest związany z powiązaniem danych i mogę go wyeliminować, usuwając powiązanie danych. To pytanie dotyczy ogólnych dzienników, a nie konkretnego błędu. Zaktualizuję pytanie, aby to wyjaśnić.
Hong

Odpowiedzi:

74

Gradle nie przekierowuje swoich dzienników do osobnego pliku w Android Studio.

Dlatego jeśli chcesz zobaczyć je w pliku, musisz zbudować gradle za pomocą polecenia w terminalu i przekierować wejście gradle do pliku.

gradlew build > myLogs.txt 2>&1

To polecenie przekieruje wszystkie standardowe wyjścia i komunikaty o błędach z kompilacji Gradle do pliku o nazwie myLogs.txt w folderze projektu.

gradlew build > myLogs.txt 2> logErrors.txt

To polecenie przekieruje wszystkie standardowe dane wyjściowe z dzienników Gradle do pliku myLogs.txt, a wszystkie komunikaty o błędach do logErrors.txt

Testowany na Windows 10 i działa idealnie.

Tutaj znajduje się więcej informacji na temat przekierowywania standardowego wyjścia z poleceń do różnych plików.

Krasimir Stoev
źródło
Dziękuję za Twoją odpowiedź. Używam Androida w systemie Windows 10. Czy chodziło Ci o to, że uruchomienie Gradle w Android Studio nie generuje plików dziennika?
Hong
1
Tak. Używam go również w systemie Windows 10 i nie mogę znaleźć sposobu na uruchomienie skryptu kompilacji gradlew przez terminal za pomocą polecenia podobnego do tee. Są więc dwie opcje - uruchom polecenie za pomocą polecenia podobnego do tee, które jest obsługiwane w systemie Windows lub nawiguj po haku za pośrednictwem Log4j, jak wspomniano w powyższym linku.
Krasimir Stoev
1
Jutro w pracy spróbuję wykonać to polecenie na Ubuntu i zobaczę czy zadziała. Czytałem, że w ten sposób możesz przechowywać swoje logi poza standardowym wyjściem
Krasimir Stoev
1
Wyszukałem i stwierdziłem, że gradle nie udostępnia ogólnej opcji logowania dla zewnętrznego pliku. Jest to sugerowane tutaj: discuss.gradle.org/t/logging-to-console-and-file/8635 i kilka innych postów na forum.
Krasimir Stoev
1
Witam ponownie, sprawdziłem i okazuje się, że gradle wypisuje swoje logi tylko na standardowe wyjście w Android Studio. Jeśli chcesz je zobaczyć w osobnym pliku, powinieneś skompilować projekt za pomocą polecenia i przekierować dane wyjściowe do pliku. Zaktualizuję swoją odpowiedź. Właśnie go przetestowałem i działa dobrze w
systemie
42

Widok -> Okna narzędzi -> Kompiluj.

Na lewym panelu znajduje się mały przycisk „ab”.

wprowadź opis obrazu tutaj

Znajdują się tam wszystkie dzienniki ocen dla bieżącej kompilacji.

wprowadź opis obrazu tutaj

EDYCJA : pojawiła się nowa ikona z AndroidStudio 3.3

wprowadź opis obrazu tutaj

Ashakirov
źródło
5
Ikona się zmieniła, ale nadal tam jest. Tekst podpowiedzi po najechaniu myszą „Przełącz widok”.
podpis metodologiczny
1
Uratował mi życie. Kotlin kompilator pokazywał stos ślady stosu, które nie mogę znaleźć useul
peterchaula
5
Przycisk zniknął. Teraz kliknij górną linię („Build: ...”), aby wyświetlić cały dziennik.
Erik Browne
14

Możesz także spróbować uruchomić swoje zadanie w następujący sposób:

> gradlew - info build

Otrzymasz kilka przydatnych informacji z dziennika

Ajaxian Krasic
źródło
6
dlaczego głosować przeciw? Sam Gradle drukuje Run with --info or --debug option to get more log output.na dole swojego wyjścia "Ach, dzieci w dzisiejszych czasach unikają świętego terminalu"
Antek
To jest to, czego potrzebuję, aby zobaczyć w pełni rozwinięty wiersz poleceń logowania. To przydatna i dobra odpowiedź! Używam Gradle 5.5.1
David