Kiedy próbuję uruchomić moją aktywność AndEngine , pojawia się ten błąd:
ERROR/InputDispatcher(21374): channel '4122e148 my.package.AcGame (server)' ~ Channel is unrecoverably broken and will be disposed!
Aplikacja nie ulega awarii, ale jest czarny ekran, a urządzenie nie reaguje na naciśnięcie przycisku „Wstecz” lub „Dom”.
Czy ktoś wie na czym polega problem?
Odpowiedzi:
Jednym z najczęstszych powodów, dla których widzę ten błąd, jest próba wyświetlenia okna dialogowego ostrzeżenia lub okna postępu w działaniu, które nie jest na pierwszym planie. Tak jak wtedy, gdy wątek w tle, który wyświetla okno dialogowe, działa w wstrzymanym działaniu.
źródło
Myślę, że masz gdzieś przecieki pamięci. Można znaleźć wskazówki, aby uniknąć wyciek pamięci tutaj . Możesz również dowiedzieć się o narzędziach do śledzenia tutaj .
źródło
Czy użyłeś innego wątku interfejsu użytkownika? Nie powinieneś używać więcej niż 1 wątku interfejsu użytkownika i nadawać mu wygląd kanapki. Może to spowodować wycieki pamięci.
Podobny problem rozwiązałem 2 dni temu ...
Krótko mówiąc: główny wątek może mieć wiele wątków interfejsu użytkownika do wykonywania wielu prac, ale jeśli jeden wątek podrzędny zawierający wątek interfejsu użytkownika znajduje się w nim, wątek interfejsu użytkownika mógł jeszcze nie zakończyć pracy, podczas gdy jego wątek nadrzędny już zakończył pracy, powoduje to wycieki pamięci.
Na przykład ... dla aplikacji Fragment & UI ... spowoduje to wycieki pamięci.
Moje rozwiązanie jest uporządkowane jak poniżej:
dla ciebie odniesienia.
Jestem Tajwańczykiem, cieszę się, że mogę tu jeszcze raz odpowiedzieć.
źródło
Możesz zobaczyć kod źródłowy tego wyjścia tutaj :
Jest to spowodowane zerwanym cyklem zablokowanym ...
źródło
Mam podobny błąd (moja aplikacja się zawiesza) po zmianie nazwy czegoś w programie
strings.xml
i zapomnieniu o zmodyfikowaniu innych plików (plik zasobów xml preferencji i kod java).IDE (Android Studio) nie pokazało żadnych błędów. Ale po naprawieniu plików xml i kodu java aplikacja działała poprawnie. Więc może są jakieś małe błędy w twoich plikach xml lub stałych.
źródło
Miałem ten sam problem. Mój był spowodowany trzecim słoikiem, ale logcat nie złapał wyjątku, rozwiązałem, aktualizując trzeci słoik, mam nadzieję, że to pomoże.
źródło
Kiedy napotkałem ten błąd, gdzieś w twoim kodzie twoje funkcje lub biblioteki, które używały, działają w różnych wątkach, więc spróbuj wywołać cały kod w tym samym wątku, rozwiązało to mój problem.
Link referencyjny Google
źródło
Miałem ten sam problem, ale mój był z powodu wycieku pamięci bazy danych Androida. Pominąłem kursor. Więc urządzenie ulega awarii, aby naprawić ten wyciek pamięci. Jeśli pracujesz z bazą danych systemu Android, sprawdź, czy nie pominąłeś kursora podczas pobierania z bazy danych
źródło
Zdarzyło mi się to również podczas uruchamiania gry na silniku i. Zostało to naprawione po dodaniu poniższego kodu do mojego pliku manifest.xml. Ten kod należy dodać do głównej aktywności.
źródło
Miałem ten sam problem. Aby rozwiązać problem: Zamknij go w emulatorze, a następnie uruchom go za pomocą Android Studio.
Błąd występuje podczas próby ponownego uruchomienia aplikacji, gdy aplikacja jest już uruchomiona w emulatorze.
Zasadniczo błąd mówi - „Nie mam już istniejącego kanału i usuwam już ustanowione połączenie”, ponieważ ponownie uruchomiłeś aplikację z Android Studio.
źródło
Ja też miałem ten sam problem. W moim przypadku było to spowodowane próbą odtwarzania filmów o słabej kodyfikacji (wymagało zbyt dużej ilości pamięci). To pomogło mi złapać błąd i poprosić inną wersję tego samego filmu. https://stackoverflow.com/a/11986400/2508527
źródło
W moim przypadku te dwa problemy występują w niektórych przypadkach, na przykład gdy próbuję wyświetlić okno dialogowe postępu w działaniu, które nie jest na pierwszym planie. Dlatego odrzucam okno dialogowe postępu w odrzucam onPause cyklu życia działania. I problem został rozwiązany.
Nie można uruchomić tego animatora w odłączonym widoku! efekt ujawnienia BŁĄD
ODPOWIEDŹ: Nie można uruchomić tego animatora w odłączonym widoku! efekt ujawnienia
Dlaczego otrzymuję błąd? Kanał jest nieodwracalnie uszkodzony i zostanie usunięty!
ODPOWIEDŹ: Dlaczego otrzymuję błąd „Kanał jest nieodwracalnie uszkodzony i zostanie usunięty!”
źródło
Miałem ten problem, a przyczyną był w rzeczywistości wyjątek NullPointerException. Ale nie został mi przedstawiony jako jeden!
mój wynik: ekran utknął na bardzo długi czas i błąd ANR
Mój stan: plik XML układu zawiera inny układ, ale odwołuje się do dołączonego widoku bez podawania identyfikatora w załączonym układzie. (miałem jeszcze dwie podobne implementacje tego samego widoku podrzędnego, więc identyfikator zasobu został utworzony z podaną nazwą)
Uwaga: był to układ niestandardowego okna dialogowego, więc sprawdzenie najpierw okien dialogowych może trochę pomóc
Wniosek: podczas wyszukiwania identyfikatora widoku potomnego doszło do wycieku pamięci.
źródło
U mnie było to spowodowane zbyt dużym obrazem na ekranie powitalnym (ponad 4000x2000). Problem zniknął po zmniejszeniu jego wymiarów.
źródło
Czytając wszystkie wypowiedzi, wygląda na to, że wiele różnych źródeł wykazuje te same objawy problemu.
Na przykład w moim przypadku - problem pojawił się, gdy tylko dodałem
do właściwości mojego paska postępu. Myślę, że projektant GUI w ADT jest znany z kilku błędów. Dlatego zakładam, że jest to jeden z nich. Więc jeśli napotkasz podobne symptomy problemu (które po prostu nie mają sensu) po zabawie z konfiguracją GUI, po prostu spróbuj cofnąć to, co zrobiłeś i cofnąć ostatnie modyfikacje GUI.
Po prostu naciśnij Ctrl + Z po wyświetleniu ostatnio zmodyfikowanego pliku na ekranie.
Lub:
Pomocne może być narzędzie kontroli wersji. Otwórz panel Kontrola wersji - wybierz zakładkę Zmiany lokalne i zobacz ostatnio zmodyfikowane pliki (np. Xml).
Kliknij prawym przyciskiem myszy jedną z najbardziej podejrzanych i kliknij Pokaż różnicę. Następnie zgadnij, która zmodyfikowana linia może być odpowiedzialna.
Powodzenia :)
źródło
Ten błąd wystąpił w przypadku wycieku pamięci. Na przykład, jeśli masz jakiś statyczny kontekst komponentu Androida (aktywność / usługa / itp.) I zostanie on zabity przez system.
Przykład: sterowanie odtwarzaczem muzyki w obszarze powiadomień. Użyj usługi pierwszego planu i ustaw akcje w kanale powiadomień za pośrednictwem PendingIntent, jak poniżej.
A jeśli ten kanał powiadomień zostanie nagle uszkodzony (może to być przez system, jak w urządzeniach Xiomi, kiedy czyścimy aplikacje w tle), to z powodu wycieków pamięci ten błąd jest generowany przez system.
źródło
W moim przypadku korzystałem z biblioteki Glide i przesłany do niej obraz był zerowy. Więc rzucał ten błąd. Wystawiam czek w ten sposób:
I działało dobrze. Mam nadzieję, że to komuś pomoże.
źródło
Otrzymałem ten sam komunikat logcat, po prostu zdaj sobie sprawę, że wartość string.xml tablicy nie może być liczbą / cyfrą, ale dozwolony jest tylko tekst / alfabet.
źródło
W moim przypadku ten błąd występuje, ponieważ nie jest połączony z Firebase Firestore, ale używa tego samego.
Aby rozwiązać ten problem, przejdź do Narzędzia-> Firebase
kiedy okno otworzy się na RHS wybierz opcje -> Połącz swoją aplikację z Firebase -> Dodaj Cloud Firestore do swojej aplikacji
źródło