2014-05-13 13 views
45

Ostatnio mój Galaxy Note 2 został uaktualniony do wersji 4.4.2. Używam tego telefonu do rozwoju (przy użyciu ADT) i życie było w porządku, ale po tym uaktualnieniu "Pause GC" zaczął się błąd i nie mogę go rozwiązać. Przychodzi za każdym razem, gdy zmienia się ekran UI w moim narzędziu ADT LogCat. Poniżej znajduje się zrzut błędu.Wstrzymaj GC Błąd po aktualizacji Androida 4.4.2

Z góry dziękujemy za pomoc.

05-13 22:39:22.538: W/dalvikvm(8350): No implementation found for native Ldalvik/system/VMRuntime;.pauseGc:(Ljava/lang/String;)I 
05-13 22:39:22.543: E/MyThread(8350): Pause GC 
05-13 22:39:22.543: E/MyThread(8350): java.lang.reflect.InvocationTargetException 
05-13 22:39:22.543: E/MyThread(8350): at java.lang.reflect.Method.invokeNative(Native Method) 
05-13 22:39:22.543: E/MyThread(8350): at java.lang.reflect.Method.invoke(Method.java:515) 
05-13 22:39:22.543: E/MyThread(8350): at android.app.MyThread.pauseGC(MyThread.java:5525) 
05-13 22:39:22.543: E/MyThread(8350): at android.app.MyThread.performLaunchActivity(MyThread.java:2324) 
05-13 22:39:22.543: E/MyThread(8350): at android.app.MyThread.handleLaunchActivity(MyThread.java:2471) 
05-13 22:39:22.543: E/MyThread(8350): at android.app.MyThread.access$900(MyThread.java:175) 
05-13 22:39:22.543: E/MyThread(8350): at android.app.MyThread$H.handleMessage(MyThread.java:1308) 
05-13 22:39:22.543: E/MyThread(8350): at android.os.Handler.dispatchMessage(Handler.java:102) 
05-13 22:39:22.543: E/MyThread(8350): at android.os.Looper.loop(Looper.java:146) 
05-13 22:39:22.543: E/MyThread(8350): at android.app.MyThread.main(MyThread.java:5602) 
05-13 22:39:22.543: E/MyThread(8350): at java.lang.reflect.Method.invokeNative(Native Method) 
05-13 22:39:22.543: E/MyThread(8350): at java.lang.reflect.Method.invoke(Method.java:515) 
05-13 22:39:22.543: E/MyThread(8350): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1283) 
05-13 22:39:22.543: E/MyThread(8350): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1099) 
05-13 22:39:22.543: E/MyThread(8350): at dalvik.system.NativeStart.main(Native Method) 
05-13 22:39:22.543: E/MyThread(8350): Caused by: java.lang.UnsatisfiedLinkError: Native method not found: dalvik.system.VMRuntime.pauseGc:(Ljava/lang/String;)I 
05-13 22:39:22.543: E/MyThread(8350): at dalvik.system.VMRuntime.pauseGc(Native Method) 
05-13 22:39:22.543: E/MyThread(8350): ... 15 more 

UPDATE: Mam problem inicjowane w code.android.com (http://code.google.com/p/android/issues/detail?id=71073). Jak na ich błąd Samsunga, więc podniosłem problem na forum Samsung teraz.

+4

Tak, otrzymałem ostatnio aktualizację 4.4.2 na mojej notatce 2. od tego dnia otrzymujemy ten błąd. – bynu022

+0

Zrobiłem jedno ćwiczenie, aby wykonać puste działanie (jako domyślne) w narzędziu ADT i uruchomiłem na moim telefonie komórkowym, a następnie ponownie otrzymałem ten sam błąd. To wyklucza jakikolwiek błąd w kodowaniu zrobiłem mojemu ja. Ponadto zaktualizowałem narzędzie ADT o wszystkie najnowsze aktualizacje, ale sytuacja jest taka, jaka jest. – ajay

+0

Występowanie tego samego błędu w Galaxy Note 8 (GT-N5110, 4.4.2) - ta sama dokładna aplikacja w Note 10 2014 Edition działa dobrze (SM-P600, 4.4.2). Ta sama aplikacja działa również dobrze na Acer A1-840FHD (4.4.2), Nexus 7 (4.4.4). – Kyle

Odpowiedz

1

Miałem ten sam problem co ty. Używałem ACRA i połknąłem awarię i pokazałem to tylko w logcat.

Błąd faktycznie powrócił do serwera i mogłem poprawnie debugować. Ewentualnie wyłącz ACRA podczas debugowania, a zobaczysz właściwy błąd.

+1

Jak mogę sprawdzić, czy ACRA jest włączona w moim narzędziu i wyłączyć to. – ajay

+1

Wiedziałbyś, gdyby był włączony. Musisz dołączyć bibliotekę do swojego projektu i trochę konfigurować, aby zainstalować ACRA. Zobaczysz go w głównym punkcie wejściowym aplikacji. Zobaczysz coś takiego: @ReportsCrashes (formKey = "", formUri = "http://www.yourselectedbackend.com/reportpath") klasa publiczna MyApplication rozszerza aplikację ... – Behr

+2

To nie ma nic wspólnego z ** przyczyną ** problemu, więc nie jest w sensie praktycznym odpowiedź. Zasadniczo obserwujesz, że jeśli używasz ACRA, może * ukryć * tę wiadomość (choć nawet to jest trochę zaskakujące). Jest jednak wysoce wątpliwe, że może * spowodować * to. ** Prawdziwy problem jest raczej błędem w niektórych wersjach producentów Androida, przy czym kod wysokiego poziomu miał zwyczaj przekłuwania zasłony abstrakcji, aby kopać coś w wewnętrznych, a następnie zmieniono ustawienia wewnętrzne, aby cel tego blinda znalazł się za prądem, którego nie można już znaleźć. –

4

Po obejrzeniu tego problemu przez pewien czas na mojej notatce 2 (GT-N7100), Android 4.4.2 chciałem uczynić mój powyższy komentarz właściwą odpowiedzią.

Allocation tracked on Samsung Galaxy Note 2

Sortowanie według wielkości alokacji:

Sorted by allocation size

użyłem WebRTC śledzić alokacji, gdy używany jest Android aparat fotograficzny, i że można wyraźnie zauważyć, że za każdym razem aparat jest wywoływany i wideo jest renderowane na GLSurfaceView w nowej Aktywności, pozostało ponad 2 MB śmieci, które nigdy nie są gromadzone przez GC.

Dla porównania, tutaj jest taki sam przydział śledzone na ASUS Memo Pad 2, Android 4.2.2:

Allocation tracked on Asus Memo Pad 2

Sortowanie według wielkości alokacji:

Sorted by allocation size

w innych słowa, w uwadze 2 możesz rozpocząć podgląd wideo na żywo około 20-30 razy, zanim pamięć się zapełni i urządzenie się zawiesi.

Innymi słowy: Samsung wprowadził ten problem z aktualizacją zeszłego roku i jeszcze go nie naprawił, ani nie reaguje w żaden sposób. Czy Samsung chce, abyśmy kupili nowe urządzenie? Na to wygląda.

-

I tu jest mój oryginalny komentarz jako od 2014-12-11:

To powoduje kłopoty. Powoduje, że urządzenie potrzebuje o wiele więcej pamięci niż potrzeba i ulega awarii. Opracowujemy aplikację z wieloma obrazami i filmami , a ze względu na brak GC można sprawić, że Android osiągnie limit 64 MB (Uwaga 2) i ulegnie awarii, podczas gdy na innych urządzeniach zużycie pamięci jest o wiele niższe, a pamięć jest zawsze wydany po użyciu. W przypadku przykładu , ASUS Memo Pad o tej samej rozdzielczości zużywa około 12 MB, a to, co Samsung Note 2 ma 24 MB.Urządzenie Samsung jest o wiele szybsze, prawdopodobnie z powodu pominięcia GC.

+0

Aha, i zapomniałem zaznaczyć, że użytkownicy nawet nie zdadzą sobie sprawy z tego, że urządzenie nie działa. Będą wskazywać na tego, kto zrobił aplikację, ponieważ "Niestety, ..." (masz to!) –

Powiązane problemy