Czy ktoś ma jakieś sugestie, w jaki sposób mogę zobaczyć pełny tekst błędów, które występują podczas próby synchronizacji moich folderów K9?
Wydaje się, że nie ma sposobu, aby zobaczyć te komunikaty dziennika na urządzeniu bez dostępu do konta root , ale jeśli masz dostęp do konta root, istnieje kilka opcji, albo przyznaj wymagane uprawnienia aLogcat, albo rozważ użycie okropnej hack TM do przeglądania je bezpośrednio.
Przeglądaj pliki dziennika na komputerze lub stacji roboczej za pośrednictwem adb
Jeśli możesz podłączyć urządzenie z Androidem do komputera lub stacji roboczej, możesz uzyskać dostęp do dzienników za pomocą adb
polecenia.
Aby to zrobić w systemie Windows, najpierw musisz zainstalować zestaw Android SDK (który będzie wymagał Java SE SDK ) i dodać android-sdk\tools
oraz android-sdk\platform-tools
do ścieżki systemowej . Następnie włącz debugowanie USB w swoim Nexusie 7, podłącz go przez USB i zainstaluj interfejs Android Composite ADB z android-sdk\extras\google\usb_driver
(musiałem zmusić Windows XP, żeby się tutaj pojawił, nie znalazłby sterowników samodzielnie).
Aby uzyskać szczegółowe informacje, jak dostać adb
się i działa bez pełnej Android SDK instalacji, lub na komputerach Mac lub Linux, patrz doskonałą odpowiedź Izzy do
Czy istnieje minimalna instalacja ADB?
Następnie możesz otworzyć powłokę (tj. cmd
Okno) i uruchomić polecenie:
adb logcat k9:V *:S AndroidRuntime:E
- Potwierdziłem, że działa to na moim niezrootowanym Nexusie 7.
Przyznaj uprawnienia aLogcat
Jeśli masz dostępREAD_LOGS
do konta root , możesz rozważyć przyznanie uprawnienia aLogcat , jak sugeruje ten post aLogcat / CatLog / Lumberjack nie działa? Zrób to ... na forum XDA-Developers :
pm grant <pkg> android.permission.READ_LOGS
Aby udzielić tego uprawnienia alogcat
lub alogcat.donate
, możesz użyć jednego z następujących poleceń, w zależności od tego, czy korzystasz z wersji darowizny, czy nie:
pm grant org.jtb.alogcat.donate android.permission.READ_LOGS
pm grant org.jtb.alogcat android.permission.READ_LOGS
Według jednego z postów na temat deweloperów Androida i biletu przyznanie pozwolenia przetrwa ponowne uruchomienie i aktualizację, ale nie odinstalowanie / ponowne zainstalowanie.
Niestety, ponieważ wymaga to dostępu do konta root, niezależnie od tego, czy uruchomię to na urządzeniu, czy na komputerze (z prefiksem adb shell
), po prostu pojawia się błąd:
Neither user 12345 nor current process has android.permission.GRANT_REVOKE_PERMISSION
- Nie mogę potwierdzić, że to działa, ponieważ mój Nexus 7 nie został zrootowany.
Zastanów się nad użyciem strasznego hacka TM
Jeśli masz dostęp do logcat
konta root , możesz rozważyć utworzenie setuid root i uruchomienie logcata z powłoki urządzenia, jak sugerowano w odpowiedzi na moje pytanie Jak mogę uzyskać dostęp do plików dziennika Androida na moim Nexusie 7 bez dostępu roota? pytanie:
chmod 04755 /system/bin/logcat
logcat k9:V *:S AndroidRuntime:E
- Ponownie nie mogę potwierdzić, że to działa i prawdopodobnie użyłbym tego tylko w ostateczności , biorąc pod uwagę implikacje bezpieczeństwa.
Dlaczego żadne komunikaty dziennika z K9 nie pojawiają się w przeglądarce dziennika aLogcat ?
Czy w Jelly Bean mogło się coś zmienić, co spowodowało, że rejestrowanie K9 przestało działać?
Ponieważ wydaje się, że aLogcat pokazuje niewiele wiadomości , czy coś się zmieniło w Jelly Bean, co może oznaczać, że nie jest on w stanie uzyskać dostępu do wszystkich wiadomości?
Wydaje się, że jest to zmiana w Jelly Bean, która wpływa na wszystkie aplikacje, które mogą próbować odczytać pliki dziennika.
Najwyraźniej zezwolenie READ_LOGS nie jest przyznawane aplikacjom zewnętrznym w Jelly Bean . Ponieważ ten link wydaje się niewiarygodny:
Dzisiaj przetestowałem moją aplikację na najnowszym emulatorze (API 16) przed wypuszczeniem jej do Google Play. Okazało się, że Android odmawia teraz przyznania tego uprawnienia aplikacjom innych firm. To dziwne, ponieważ przejrzałem wszystkie udokumentowane zmiany Jelly Bean i nie mogłem znaleźć niczego, co wspominałoby o zezwoleniu na READ_LOGS.
i później
Poziom ochrony dla READ_LOGS to teraz „podpis | system | rozwój”. Nowa składnia potoku dla protectionLevel jest również nieudokumentowana (patrz http://code.google.com/p/android/issues/detail?id=34785 ).
Podejrzewam, że aLogcat widzi tylko wiadomości generowane przez siebie i jest to vm.
Aby uzyskać więcej informacji, zobacz Odpowiedzi Flow na moje pytanie. Jak aktywny powinienem oczekiwać pliku dziennika systemu Jelly Bean?
adb logcat
nadal jest w stanie uzyskać pełny dziennik Androida na Jelly Bean.adb logcat
z niego, i odpowiednio zaktualizowałem swoją odpowiedź. Nadal frustrujące jest to, że nie mogę znaleźć żadnego sposobu uzyskania dostępu do dzienników bez dostępu użytkownika root z samego urządzenia.Widziałem to zachowanie w K9, kiedy mój serwer pocztowy zaktualizował swoje certyfikaty SSL. Rozwiązaniem było długie naciśnięcie konta, wybranie
Account settings -> Fetching mail -> Incoming server
i przewinięcieNext
stron, aby potwierdzić ustawienia, aż pojawi się wyskakujące okienko dotyczące certyfikatu (może się nie pojawić, jeśli wszystko jest w porządku z certyfikatem, mój miał zły vhost). Potwierdź certyfikat i po prostu przejrzyj pozostałe ustawienia, a twoje konto powinno zacząć działać.źródło