暂停GC错误后Android 4.4.2升级

最近我的Galaxy Note 2升级到了4.4.2版本。 我正在使用这款手机进行开发(使用ADT),生活很好,但发布此升级“暂停GC”错误开始到来,我无法解决。 它是每次在我的ADT工具LogCat UI屏幕更改状态。 下面是错误的转储。

先谢谢您的帮助。

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 )发起了这个问题。 由于他们三星的错误,所以我已经提出这个问题,三星论坛现在。

在我的Note 2(GT-N7100)上看到这个问题一段时间后,Android 4.4.2我想让我的上面的评论一个正确的答案。

在Samsung Galaxy Note 2上跟踪分配

按分配大小sorting:

按分配大小排序

当使用Android摄像头时,我使用webrtc来跟踪分配,并且可以清楚地看到,每当相机被调用并且video在新的Activity中被渲染到GLSurfaceView上时,剩余的垃圾超过2MB,这是从来没有收集过GC。

为了比较,这里是在华硕便签簿2,Android 4.2.2跟踪相同的分配:

在华硕备忘录2上进行跟踪分配

按分配大小sorting:

按分配大小排序

换句话说,在Note 2上,您可以在内存已满并且设备崩溃之前,开始20-30次的实时video录像。

换句话说,三星在去年推出了一个更新版本,目前还没有解决,也没有任何反应。 三星是否想让我们购买新设备? 看起来像这样

这是我最初的评论截至2014年12月11日:

这确实会造成麻烦。 它会导致设备占用比需要更多的内存和崩溃。 我们正在开发一个包含许多图片和video的应用程序,由于缺lessGC,有可能使Android达到64MB的限制(注2)并崩溃,而在其他设备上,内存消耗要低得多,并且使用后内存总是被释放。 例如,具有相同分辨率的华硕备忘录消耗大约12MB,因为三星Note 2需要24MB。 三星设备要快得多,可能是因为省略了GC。

我和你有同样的问题。 我正在使用ACRA,它吞下了崩溃,只在logcat中显示。

错误实际上使它回到服务器,我能够正确debugging。 debugging时可能禁用ACRA,您将看到正确的错误。