大伙帮忙看看 内存溢出导致android重启。

小墨鱼 2013-01-10 05:01:15
因为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 !!!
...全文
3650 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
LakeSideHu 2013-06-06
  • 打赏
  • 举报
回复
不要在主线程中处理网络相关的操作,必须要开启子线程来处理网络
小墨鱼 2013-01-11
  • 打赏
  • 举报
回复
非常感谢大家关注, 这是谷歌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)
顾小林 2013-01-10
  • 打赏
  • 举报
回复
上网上找一下 bitmap outofmemory 有专门处理的文章 看看就OK
ivorynut 2013-01-10
  • 打赏
  • 举报
回复
当然 你要在新建的模拟器上运行项目了
ivorynut 2013-01-10
  • 打赏
  • 举报
回复
这个问题嘛,看你的错误问题出现在读取Bitmap时出现的溢出,你再重新建个模拟器,把最下面的Hardware中的Max VM application heap size 改大一些,比如改成64或者72,只要比默认的大就好。根据我的思路想法应该能够解决你的问题,你试下

80,350

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧