因为Out of memory on a 124216-byte allocation. 没有足够内存分配,导致系统服务挂掉,引起android系统重启,各位大牛有遇到过没,是不是因为dalvik虚拟机的内存设置不够。
[dalvik.vm.heapgrowthlimit]: [64m]
[dalvik.vm.heapsize]: [256m]
[dalvik.vm.heapstartsize]: [8m]
这个设置貌似是针对应用的,即使小了,也不应该引起系统重启,
大伙有好的建议没。
小弟先谢谢了。问题解决可以再追加分,
提供好的建议或者思路都给分。。
以下为详细日志信息
01-10 03:38:18.280 I/ActivityManager(  290): Process com.funcervomedia.RiotRingsHD (pid 3841) has died.
01-10 03:38:18.320 W/InputDispatcher(  290): channel '2ccc7d40 com.funcervomedia.RiotRingsHD/com.cervomedia.RiotRingsHD.RiotRingsHD (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
01-10 03:38:18.320 E/InputDispatcher(  290): channel '2ccc7d40 com.funcervomedia.RiotRingsHD/com.cervomedia.RiotRingsHD.RiotRingsHD (server)' ~ Channel is unrecoverably broken and will be disposed!
01-10 03:38:18.330 W/InputDispatcher(  290): Attempted to unregister already unregistered input channel '2ccc7d40 com.funcervomedia.RiotRingsHD/com.cervomedia.RiotRingsHD.RiotRingsHD (server)'
01-10 03:38:18.330 I/WindowManager(  290): WIN DEATH: Window{2ccc7d40 com.funcervomedia.RiotRingsHD/com.cervomedia.RiotRingsHD.RiotRingsHD paused=false}
01-10 03:38:18.330 W/WindowManager(  290): Force-removing child win Window{2d209d70 SurfaceView paused=false} from container Window{2ccc7d40 com.funcervomedia.RiotRingsHD/com.cervomedia.RiotRingsHD.RiotRingsHD paused=false}
01-10 03:38:18.370 W/WindowManager(  290): Failed looking up window
01-10 03:38:18.370 W/WindowManager(  290): java.lang.IllegalArgumentException: Requested window android.os.BinderProxy@2ce86678 does not exist
01-10 03:38:18.370 W/WindowManager(  290):     at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7240)
01-10 03:38:18.370 W/WindowManager(  290):     at com.android.server.wm.WindowManagerService.windowForClientLocked(WindowManagerService.java:7231)
01-10 03:38:18.370 W/WindowManager(  290):     at com.android.server.wm.WindowState$DeathRecipient.binderDied(WindowState.java:1545)
01-10 03:38:18.370 W/WindowManager(  290):     at android.os.BinderProxy.sendDeathNotice(Binder.java:417)
01-10 03:38:18.370 W/WindowManager(  290):     at dalvik.system.NativeStart.run(Native Method)
01-10 03:38:18.370 I/WindowManager(  290): WIN DEATH: null
01-10 03:38:18.370 I/WindowManager(  290): SCREENLAYOUT_SIZE (1:small, 2:normal, 3:large, 4:xlarge) 4
01-10 03:38:18.370 I/WindowManager(  290): WINDOW DIED Window{2ccc7d40 com.funcervomedia.RiotRingsHD/com.cervomedia.RiotRingsHD.RiotRingsHD paused=false}
01-10 03:38:23.465 E/dalvikvm-heap(  290): Out of memory on a 124216-byte allocation.
01-10 03:38:23.465 I/dalvikvm(  290): "Binder Thread #10" prio=5 tid=71 RUNNABLE
01-10 03:38:23.465 I/dalvikvm(  290):   | group="main" sCount=0 dsCount=0 obj=0x2f63ca08 self=0x1050e90
01-10 03:38:23.475 I/dalvikvm(  290):   | sysTid=6002 nice=0 sched=0/0 cgrp=default handle=16408880
01-10 03:38:23.475 I/dalvikvm(  290):   | schedstat=( 0 0 0 ) utm=26451 stm=2405 core=0
01-10 03:38:23.475 I/dalvikvm(  290):   at android.graphics.Bitmap.nativeCreate(Native Method)
01-10 03:38:23.475 I/dalvikvm(  290):   at android.graphics.Bitmap.createBitmap(Bitmap.java:605)
01-10 03:38:23.475 I/dalvikvm(  290):   at android.graphics.Bitmap.createBitmap(Bitmap.java:585)
01-10 03:38:23.475 I/dalvikvm(  290):   at com.android.server.wm.WindowManagerService.screenshotApplications(WindowManagerService.java:5192)
01-10 03:38:23.485 I/dalvikvm(  290):   at com.android.server.am.ActivityStack.screenshotActivities(ActivityStack.java:850)
01-10 03:38:23.485 I/dalvikvm(  290):   at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:875)
01-10 03:38:23.485 I/dalvikvm(  290):   at com.android.server.am.ActivityStack.checkReadyForSleepLocked(ActivityStack.java:788)
01-10 03:38:23.485 I/dalvikvm(  290):   at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1557)
01-10 03:38:23.485 I/dalvikvm(  290):   at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:2795)
01-10 03:38:23.485 I/dalvikvm(  290):   at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:2853)
01-10 03:38:23.485 I/dalvikvm(  290):   at com.android.server.am.ActivityManagerService$AppDeathRecipient.binderDied(ActivityManagerService.java:846)
01-10 03:38:23.485 I/dalvikvm(  290):   at android.os.BinderProxy.sendDeathNotice(Binder.java:417)
01-10 03:38:23.485 I/dalvikvm(  290):   at dalvik.system.NativeStart.run(Native Method)
01-10 03:38:23.485 I/dalvikvm(  290):
01-10 03:38:23.505 D/TabletStatusBar(  432): topActivityChanged pkg:com.android.launcher
01-10 03:38:23.505 E/JavaBinder(  290): *** Uncaught exception returned from death notification!
01-10 03:38:23.505 E/JavaBinder(  290): java.lang.OutOfMemoryError
01-10 03:38:23.505 E/JavaBinder(  290):     at android.graphics.Bitmap.nativeCreate(Native Method)
01-10 03:38:23.505 E/JavaBinder(  290):     at android.graphics.Bitmap.createBitmap(Bitmap.java:605)
01-10 03:38:23.505 E/JavaBinder(  290):     at android.graphics.Bitmap.createBitmap(Bitmap.java:585)
01-10 03:38:23.505 E/JavaBinder(  290):     at com.android.server.wm.WindowManagerService.screenshotApplications(WindowManagerService.java:5192)
01-10 03:38:23.505 E/JavaBinder(  290):     at com.android.server.am.ActivityStack.screenshotActivities(ActivityStack.java:850)
01-10 03:38:23.505 E/JavaBinder(  290):     at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:875)
01-10 03:38:23.505 E/JavaBinder(  290):     at com.android.server.am.ActivityStack.checkReadyForSleepLocked(ActivityStack.java:788)
01-10 03:38:23.505 E/JavaBinder(  290):     at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1557)
01-10 03:38:23.505 E/JavaBinder(  290):     at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:2795)
01-10 03:38:23.505 E/JavaBinder(  290):     at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:2853)
01-10 03:38:23.505 E/JavaBinder(  290):     at com.android.server.am.ActivityManagerService$AppDeathRecipient.binderDied(ActivityManagerService.java:846)
01-10 03:38:23.505 E/JavaBinder(  290):     at android.os.BinderProxy.sendDeathNotice(Binder.java:417)
01-10 03:38:23.505 E/JavaBinder(  290):     at dalvik.system.NativeStart.run(Native Method)
01-10 03:38:23.505 W/dalvikvm(  290): threadid=71: thread exiting with uncaught exception (group=0x2b5221f8)
01-10 03:38:23.525 E/AndroidRuntime(  290): *** FATAL EXCEPTION IN SYSTEM PROCESS: Binder Thread #10
01-10 03:38:23.525 E/AndroidRuntime(  290): java.lang.OutOfMemoryError
01-10 03:38:23.525 E/AndroidRuntime(  290):     at android.graphics.Bitmap.nativeCreate(Native Method)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at android.graphics.Bitmap.createBitmap(Bitmap.java:605)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at android.graphics.Bitmap.createBitmap(Bitmap.java:585)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at com.android.server.wm.WindowManagerService.screenshotApplications(WindowManagerService.java:5192)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at com.android.server.am.ActivityStack.screenshotActivities(ActivityStack.java:850)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at com.android.server.am.ActivityStack.startPausingLocked(ActivityStack.java:875)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at com.android.server.am.ActivityStack.checkReadyForSleepLocked(ActivityStack.java:788)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at com.android.server.am.ActivityStack.resumeTopActivityLocked(ActivityStack.java:1557)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at com.android.server.am.ActivityManagerService.handleAppDiedLocked(ActivityManagerService.java:2795)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at com.android.server.am.ActivityManagerService.appDiedLocked(ActivityManagerService.java:2853)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at com.android.server.am.ActivityManagerService$AppDeathRecipient.binderDied(ActivityManagerService.java:846)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at android.os.BinderProxy.sendDeathNotice(Binder.java:417)
01-10 03:38:23.525 E/AndroidRuntime(  290):     at dalvik.system.NativeStart.run(Native Method)
01-10 03:38:23.675 I/com.umeng.common.b(  555): Could not get location from GPS or Cell-id, lack ACCESS_COARSE_LOCATION or ACCESS_COARSE_LOCATION permission?
01-10 03:38:23.925 W/AudioFlinger(  152): power manager service died !!!

解决方案 »

  1.   

    这个问题嘛,看你的错误问题出现在读取Bitmap时出现的溢出,你再重新建个模拟器,把最下面的Hardware中的Max VM application heap size 改大一些,比如改成64或者72,只要比默认的大就好。根据我的思路想法应该能够解决你的问题,你试下 
      

  2.   

    上网上找一下 bitmap outofmemory  有专门处理的文章 看看就OK
      

  3.   

    非常感谢大家关注,
    这是谷歌4.0.3 framework原生代码,应该不会存在此类内存泄露问题。要是有的话,其他手机厂商应该也会遇到过的,谷歌也会修改了的。其实这个问题的问题点,不是内存为什么会泄露,而是系统服务没有及时回收内存导致android系统崩溃。
    这只是其中的一个日志,还有很多其他地方内存溢出导致系统崩溃的。大家有遇到过此类问题吗?能分享下解决经验么。比如下面日志,也是提示out of memeory,但是是在接收到网络推送数据的时候,
    01-11 07:46:10.524 E/dalvikvm-heap(  296): Out of memory on a 8208-byte allocation.
    01-11 07:46:10.524 I/dalvikvm(  296): "NetworkStats" prio=5 tid=37 RUNNABLE
    01-11 07:46:10.524 I/dalvikvm(  296):   | group="main" sCount=0 dsCount=0 obj=0x2be152f8 self=0xaae448
    01-11 07:46:10.524 I/dalvikvm(  296):   | sysTid=406 nice=0 sched=0/0 cgrp=default handle=10511248
    01-11 07:46:10.524 I/dalvikvm(  296):   | schedstat=( 0 0 0 ) utm=925 stm=25 core=0
    01-11 07:46:10.524 I/dalvikvm(  296):   at java.nio.HeapByteBuffer.<init>(HeapByteBuffer.java:~48)
    01-11 07:46:10.524 I/dalvikvm(  296):   at java.nio.ReadWriteHeapByteBuffer.<init>(ReadWriteHeapByteBuffer.java:49)
    01-11 07:46:10.524 I/dalvikvm(  296):   at java.nio.ByteBuffer.allocate(ByteBuffer.java:52)
    01-11 07:46:10.534 I/dalvikvm(  296):   at java.io.InputStreamReader.<init>(InputStreamReader.java:47)
    01-11 07:46:10.534 I/dalvikvm(  296):   at java.io.InputStreamReader.<init>(InputStreamReader.java:59)
    01-11 07:46:10.534 I/dalvikvm(  296):   at java.io.FileReader.<init>(FileReader.java:42)
    01-11 07:46:10.534 I/dalvikvm(  296):   at com.android.internal.net.NetworkStatsFactory.readNetworkStatsSummarySingleFile(NetworkStatsFactory.java:122)
    01-11 07:46:10.534 I/dalvikvm(  296):   at com.android.internal.net.NetworkStatsFactory.readNetworkStatsSummary(NetworkStatsFactory.java:102)
    01-11 07:46:10.534 I/dalvikvm(  296):   at com.android.server.NetworkManagementService.getNetworkStatsSummary(NetworkManagementService.java:1309)
    01-11 07:46:10.534 I/dalvikvm(  296):   at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:836)
    01-11 07:46:10.534 I/dalvikvm(  296):   at com.android.server.net.NetworkStatsService.performPoll(NetworkStatsService.java:799)
    01-11 07:46:10.534 I/dalvikvm(  296):   at com.android.server.net.NetworkStatsService.access$100(NetworkStatsService.java:128)
    01-11 07:46:10.534 I/dalvikvm(  296):   at com.android.server.net.NetworkStatsService$3.onReceive(NetworkStatsService.java:633)
    01-11 07:46:10.534 I/dalvikvm(  296):   at android.app.LoadedApk$ReceiverDispatcher$Args.run(LoadedApk.java:728)
    01-11 07:46:10.534 I/dalvikvm(  296):   at android.os.Handler.handleCallback(Handler.java:605)
    01-11 07:46:10.534 I/dalvikvm(  296):   at android.os.Handler.dispatchMessage(Handler.java:92)
    01-11 07:46:10.534 I/dalvikvm(  296):   at android.os.Looper.loop(Looper.java:137)
    01-11 07:46:10.534 I/dalvikvm(  296):   at android.os.HandlerThread.run(HandlerThread.java:60)