2015-09-11 15 views
11

Mam ogromny problem z pamięcią na określonych urządzeniach, gdzie mnóstwo pamięci jest przydzielane znikąd. Próbuję zrobić heapdump aby dowiedzieć się, co jest przydzielanie pamięci, ale gdy próbuję otworzyć plik heapdump, otrzymuję błąd w Android Studio:Nieoczekiwany błąd podczas przetwarzania pliku hprof: null

HprofView - Unexpected error while processing hprof file: null

Error occurring

I "Zrobiłem kilka wyszukiwania w Internecie, ale nie ma żadnych odniesień do tego błędu, o ile mogę powiedzieć. Potrzebuję pomocy w uzyskaniu zrzutu sterty, mogę naprawić moją aplikację.

Edit: Próbowałem konwersji pliku zrzutu, ale dali mi inny błąd:

Convert Android Java Heap Dump - Unexpected error while converting heap dump: ERROR: read 16710959 of 33177623 bytes

error when trying to export to standard hprof

+0

samo zrobić I na Nexusie 6 z Androidem 5.0, a tylko jeden uruchomiona aplikacja zużywa blisko 170MB Mam obniżyła mój Nexus 6 do Androida 5.0 i nie pamiętał, żeby mieć takie problemy na Androidzie 6.0 - ale może być i mylę się – Art

+0

Radzenie sobie z tym samym problemem. Czy kiedykolwiek znalazłeś rozwiązanie? – ryye

+0

@ryye niestety nie, nie rozwiązałem tego problemu. W końcu naprawiłem problem z pamięcią w mojej aplikacji, więc nie musiałem zajmować się tym problemem. Miałem nadzieję, że ktoś z zespołu programistów AS zobaczy to i coś z tym zrobi. Niestety, nie zwróciła na to uwagi. – nukeforum

Odpowiedz

0

nie mogę dać ostateczną odpowiedź, ale z mojego doświadczenia wynika, że Wydaje się, że dzieje się, gdy aplikacja zbliża się do limitu wykorzystania pamięci. To oczywiście nie jest idealne, gdy próbujesz debugować OutOfMemoryError!

2 rzeczy mogę zaproponować, aby ominąć problem:

  1. Spróbuj użyć innego urządzenia/emulatora. na przykład Zauważyłem, że ten problem jest dość powszechny na moim Samsungu S5, ale zdarza się rzadziej na moim Nexusie 4.
  2. Zatrzymaj aplikację na jakiś czas przed zabraknie pamięci, a następnie zrób zrzut sterty w tym miejscu. Nie jest to idealne rozwiązanie, ale przecieki pamięci zwykle powodują problem w czasie, a raczej wszystkie naraz, więc nadal możesz zdiagnozować przeciek.
+0

Niestety to nie pomaga w rozwiązaniu problemu. Mogę uzyskać zrzut sterty, ale Android Studio nie może ich wyświetlić na podstawie komunikatów o błędach, które dostarczyłem. – nukeforum

+0

Problem, który miałem z przydziałem, nie był przeciekiem pamięci, o ile mogę to stwierdzić. ** Stało się to tylko na konkretnych urządzeniach ** i przydzielono 400 MB w mniej niż sekundę. To było bardzo dokładnie 400 MB i nigdy więcej lub mniej. Alokacja pojawiła się między wywołaniami aktywności, po 'startActivity()' i przed 'onCreate()'. – nukeforum

+1

Otrzymujesz plik z sufiksem .hprof, ale nie sądzę, że jest to poprawny zrzut sterty. Wydaje mi się, że zabrakło pamięci * podczas przechwytywania zrzutu sterty *. Nigdy nie słyszałem o problemie, który opisujesz, ale masz moje sympatie! – vaughandroid

Powiązane problemy