Pause GC Ошибка после обновления Android 4.4.2

Недавно мой Galaxy Note 2 был обновлен до версии 4.4.2. Я использую этот телефон для разработки (с помощью ADT), и жизнь была в порядке, но после этого обновления начала появляться ошибка "Пауза GC", и я не могу решить. Это происходит каждый раз, когда в интерфейсе ADT утилита LogCat изменяет состояние экрана. Ниже дамп ошибки.

Заранее спасибо за помощь.

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

ОБНОВЛЕНИЕ: я инициировал проблему на code.android.com ( http://code.google.com/p/android/issues/detail?id=71073). По их мнению, это ошибка Samsung, поэтому я поднял вопрос на форуме Samsung сейчас.

2 ответа

Увидев эту проблему в течение некоторого времени на моем Note 2 (GT-N7100), Android 4.4.2, я захотел сделать мой комментарий правильным ответом.

Распределение отслеживается на Samsung Galaxy Note 2

Сортировка по размеру размещения:

Сортировка по размеру размещения

Я использовал webrtc для отслеживания выделения при использовании камеры Android, и ясно видно, что каждый раз, когда камера вызывается и видео отображается в GLSurfaceView в новом действии, остается более 2 МБ мусора, что составляет никогда не собрал GC.

Для сравнения, аналогичное распределение отслеживается на ASUS Memo Pad 2, Android 4.2.2:

Распределение отслеживается на Asus Memo Pad 2

Сортировка по размеру размещения:

Сортировка по размеру размещения

Другими словами, в Note 2 вы можете запустить просмотр видео в реальном времени примерно 20-30 раз, до того как память заполнится и устройство выйдет из строя.

Другими словами: Samsung представила эту проблему с обновлением в прошлом году и еще не исправила ее, и они никак не реагируют. Samsung хочет заставить нас купить новое устройство? Похоже на это.

-

А вот мой оригинальный комментарий от 2014-12-11:

Это вызывает проблемы. Это приводит к тому, что устройство занимает гораздо больше памяти, чем необходимо, и происходит сбой. Мы разрабатываем приложение со множеством изображений и видео, и из-за отсутствия GC возможно, что Android достигнет предела в 64 МБ (Примечание 2) и произойдет сбой, тогда как на других устройствах потребление памяти значительно ниже, а память всегда освобождается после использования., Например, ASUS Memo Pad с тем же разрешением потребляет около 12 МБ, а Samsung Note 2 - 24 МБ. Тем не менее, устройство Samsung работает намного быстрее, вероятно, из-за того, что GC не используется

У меня была такая же проблема, как и у вас. Я использовал ACRA, и он глотал сбой и показывал это только в logcat.

Ошибка фактически вернулась на сервер, и я смог правильно отладить. Возможно, отключите ACRA во время отладки, и вы увидите правильную ошибку.

Другие вопросы по тегам