Android Studio, logcat czyści po zamknięciu aplikacji


139

Mam problem z moim logcatem od czasu aktualizacji 1.2 Beta dla Android Studio. Kiedy uruchamiam moją aplikację, rejestruje wszystko tak, jak zwykle, a następnie dochodzę do punktu, w którym moja aplikacja ulega awarii, a aplikacja mówi: niestety, gra się zatrzymała.

Po kilku sekundach android zamyka tę wiadomość. Kiedy tak się dzieje, mój logcat również zostaje w pełni wyczyszczony, co oznacza, że ​​ledwo mogę odczytać błąd. Znalazłem trochę informacji na temat bufora, ale wygląda na to, że Android Studio nie ma możliwości jego zwiększenia poza tym, że wątpię, aby to był problem.

Coś, co może być przydatne, to to, że po wyczyszczeniu i wypchnięciu zmian procesu do Android.process.core, a komunikat, który otrzymuję w moim logcatie, to:

04-13 10:28:13.394  12259-12265/android.process.acore D/dalvikvm﹕    
Debugger has detached; object registry had 1 entries

Edycja: czytałem o punktach przerwania, więc wyłączyłem aplikację skupiającą się na punktach przerwania w ustawieniach-kompilacji, wykonaniu, wdrożeniu-debugerze, ale nie przyniosło to żadnego efektu.


2
Jeśli znajdziesz zainstalowaną lokalizację programu adb, możesz uruchomić go adb logcatz terminala lub okna poleceń i opcjonalnie przesłać go do pagera, grep, tee lub cokolwiek innego.
Chris Stratton,

1
tak, możesz też spróbować adb shell bugreport > log.txt, rodzaje informacji dziennika zostaną pobrane po zakończeniu polecenia.
pyszne

@yummy na razie działało najlepiej, nadal mam nadzieję, że uda mi się znaleźć rozwiązanie, ponieważ moim zdaniem nie jest to najlepszy sposób. Dzięki
Black Lotus

1
Nie znalazłem żadnego rozwiązania, aby nie czyścić dzienników w Android Studio 1.2, ale prostym rozwiązaniem jest nie klikanie przycisku zamykania (na urządzeniu), gdy aplikacja się zawiesza. W ten sposób masz wszystkie dzienniki i przyczyny awarii aplikacji.
Chakir

@Jameltheone Wiadomość pozostaje na ekranie tylko przez kilka sekund, a następnie zamyka samo okno dialogowe awarii. Więc tak naprawdę nie miej nad tym kontroli.
Black Lotus

Odpowiedzi:


288

Miałem ten sam problem, ale wygląda bardziej jak funkcja niż błąd:

W AndroidStudio domyślnym ustawieniem okna Logcat wydaje się być „Pokaż tylko wybraną aplikację” (prawy górny róg okna Logcata) ... czyli przeglądanie dziennika wybranego procesu (domyślnie bieżące uruchomienie). Kiedy więc Twoja aplikacja ulegnie awarii podczas testowania, ten proces zniknie, więc filtr czyści dziennik.

Zamiast tego wybierz „Edytuj konfigurację filtra ...” i skonfiguruj filtr dla swojej aplikacji , np .:

  • FilterName: MyApp
  • PackageName: com.example.myapp (<< zastąp nazwą pakietu aplikacji)

... a następnie wybierz ten filtr do przyszłych uruchomień. Powinno to zachować dziennik tam dla Ciebie, nawet po awarii aplikacji.


1
Dziękuję bardzo. Rozgryzałem błąd 2 dni temu! Teraz już wiem, jak naprawdę zobaczyć błąd. :)
Woppi

1
Jesteś zbawicielem i próbowałeś skopiować, wkleić dziennik, zanim zostanie wyczyszczony ... myślałem, że to mój telefon, ponieważ inne telefony zachowują się normalnie.
Master Fathi

1
Właśnie tego mi brakowało. To powinna być akceptowana odpowiedź.
Smarować

1
Miałem ten sam problem. Działa świetnie.
Chandan Pednekar

Bravo Bravo Bravo
Yohanes AI

63

Przełącz „Pokaż tylko wybraną aplikację” na „Brak filtrów”. W ten sposób możesz zobaczyć dane wyjściowe logcat z procesu, nawet jeśli ten proces nie jest uruchomiony.

Wadą jest to, że Twój logcat zostanie wypełniony większą ilością spamu z innych procesów.


1
Aby odfiltrować spam, wpisz nazwę pakietu własnej aplikacji w pasku wyszukiwania obok listy rozwijanej „pokaż tylko wybraną aplikację / bez filtra”.
computingfreak

25

Moja aplikacja ulegała awarii i ponownie się uruchamiała. Miałem też problemy z odczytaniem logcata, żeby wiedzieć, co się dzieje. Następnie zauważyłem, że w menu rozwijanym obok listy rozwijanej Urządzenie było coś w rodzaju „com.mypackage.myapp ('jakaś liczba')”, a gdy moja aplikacja się zawiesiła, była tam inna opcja, która mówiła „com.mypackage.myapp ( 'jakaś liczba') [DEAD] ” . Jeśli wybierzesz opcję „Dead”, wyświetli się logcat poprzedniej instancji.

Dead LogCat


Pojawia się, gdy się zawiesza.
ALourenco

Miałem na myśli wypadek. PID zmienia się, ale martwa instancja nie pojawia się na liście.
Karan Modi

21

W przypadku awarii zobacz Runzakładkę na dole IDE.

Możesz zobaczyć przyczynę awarii w tej części (nawet w przypadku czystego logcata).

Uwaga: Jeśli powyższa sztuczka nie działa, spróbuj spowodować awarię i natychmiast odłącz kabel telefonu komórkowego (jeśli używasz prawdziwego urządzenia do testu). możesz zobaczyć błąd przed wyczyszczeniem.

Aktualizacja: Jeśli również powyższa sztuczka nie działa, spróbuj podłączyć i odłączyć telefon i miejmy nadzieję, że problem został rozwiązany.

Aktualizacja2: Jeśli znowu nie zadziała, spróbuj unieważnić połowy i uruchom ponownie, a następnie ponownie rozpocznij debugowanie.

Aktualizacja3: jako ostatni sposób spróbuj usunąć aplikację i zainstalować ją ponownie, a następnie rozpocznij debugowanie (jeśli nie stracisz tego warunku, który chcesz przetestować)


7

W Android Studio 2+

  1. Kliknij Run

  2. Kliknij Edit Configurations

  3. W Run/Debug Configurationsoknie wybierz Miscellaneouszakładkę

  4. Upewnij się, że Clear log before launchpole wyboru nie jest zaznaczone


4

Filtr czyści dziennik po awarii aplikacji. Wybierz „Edytuj konfigurację filtru” i utwórz własny filtr niestandardowy z nazwą filtra. Spowoduje to zapisanie dziennika z informacjami nawet podczas tworzenia aplikacji.


3

napotkałem ten sam problem i oto rozwiązanie: -

1- Narzędzia -> Android -> Włącz integrację ADB.

a teraz możesz normalnie zobaczyć logcat i awarie


Moja integracja z ADB była już niestety włączona. Coś, co może się przydać, to to, że po wyczyszczeniu otrzymuję wiadomość: 04-13 10: 28: 13.394 12259-12265 / android.process.acore D / dalvikvm ﹕ Debugger został odłączony; rejestr obiektów miał 1 wpisy
Black Lotus

@BlackLotus czy rozwiązałeś swój problem? Mam ten sam problem tutaj
Hoo

Nie obowiązuje to już w nowym Android Studio.
Hamzeh Soboh

1

Jest 2018 rok i to może się jeszcze wydarzyć. Zamknij Android Studio i otwórz ponownie.



0

Wydaje się, że ten błąd został naprawiony w nowej wersji Android Studio w wersji 1.2.2


1
Błąd nadal występuje, nawet w Android Studio 2.2.2, więc myślę, że @maxdownunder miał rację, zakładając, że jest to rzeczywiście ... "funkcja"
Aenadon

0

Napotkałem ten sam problem i żadna z odpowiedzi nie mogła mi pomóc, dopóki nie zdałem sobie sprawy, że moja aplikacja powoduje wyjątek OutOfMemoryException. To również prawdopodobna główna przyczyna.


0

Może być bardzo późno na imprezę, ale miałem ten sam problem i rozwiązałem go w ten sposób:

W oknie logcat, menu rozwijane w prawym górnym rogu wybierz Edit filter configuration, w następnym menu wprowadź Filter namei twójPackage name .

Gotowe, dla mnie dzienniki są widoczne po awarii.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.