我自己写了个应用后台运行实时采集数据,当应用后台运行时,有时打开其他应用比如UC浏览器或是游戏,就会出现我写的那个应用报异常,但并不是每次都报异常,我今天调试时,后台运行程序,然后打开一个游戏,就会一直报异常,异常如下:
12-19 03:26:17.440: D/dalvikvm(6798): GC_CONCURRENT freed 427K, 48% free 3244K/6151K, external 672K/1045K, paused 13ms+176ms
12-19 03:26:24.200: D/AndroidRuntime(6851): Shutting down VM
请问这是什么意思?是不是由于手机承受不了而释放内存导致虚拟机停止运行啊?求高人指点啊,不胜感激

解决方案 »

  1.   

    如果你写的是一个service的话,很可能在系统内存很低的时候,给系统杀掉。
    这个问题,你要先确定你的后台应用到底有没有给杀掉,从log能找到的。
      

  2.   

    不是关键部分LOG
    报错肯定是程序执行了非法操作。系统内存低的时候,系统可能会杀掉些进程,并不是程序报错的借口。
      

  3.   

    这三条log消息之后就是程序异常关闭的操作,我的程序service启动时需要按钮启动,service终止后不能自行重启,程序报错是空指针异常,也就是我的需要按钮输入的值是空指针。现在这问题我都不知道如何解决了= =
      

  4.   

    我估计是低内存然后杀死了service,导致我某些标志位空指针,我那些标志位是service启动按钮赋值的,请问知道如何解决这种问题吗?
      

  5.   

    I/ActivityManager(  218): Low Memory: No more background processes.I/ActivityManager(  218): Process zm.Data2 (pid 6228) has died.W/ActivityManager(  218): Scheduling restart of crashed service zm.Data2/.MyService in 5000msW/ActivityManager(  218): Scheduling restart of crashed service zm.Data2/.TrafficService in 14997msI/ActivityManager(  218): Low Memory: No more background processes.I/ActivityManager(  218): Start proc zm.Data2 for service zm.Data2/.MyService: pid=6270 uid=10028 gids={1007, 3003, 1015}E/AndroidRuntime( 6270): FATAL EXCEPTION: mainE/AndroidRuntime( 6270): java.lang.RuntimeException: Unable to start service zm.Data2.MyService@4051cbd8 with null: java.lang.NullPointerExceptionE/AndroidRuntime( 6270):  at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2173)E/AndroidRuntime( 6270):  at android.app.ActivityThread.access$2800(ActivityThread.java:123)E/AndroidRuntime( 6270):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002)E/AndroidRuntime( 6270):  at android.os.Handler.dispatchMessage(Handler.java:99)E/AndroidRuntime( 6270):  at android.os.Looper.loop(Looper.java:130)E/AndroidRuntime( 6270):  at android.app.ActivityThread.main(ActivityThread.java:3835)E/AndroidRuntime( 6270):  at java.lang.reflect.Method.invokeNative(Native Method)E/AndroidRuntime( 6270):  at java.lang.reflect.Method.invoke(Method.java:507)E/AndroidRuntime( 6270):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)E/AndroidRuntime( 6270):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)E/AndroidRuntime( 6270):  at dalvik.system.NativeStart.main(Native Method)E/AndroidRuntime( 6270): Caused by: java.lang.NullPointerExceptionE/AndroidRuntime( 6270):  at zm.Data2.MyService.onStartCommand(MyService.java:220)E/AndroidRuntime( 6270):  at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2160)E/AndroidRuntime( 6270):  ... 10 more这是log日志,其中红色部分是我的应用和service,大家看一看是不是service由于low memory而被杀死,之后由于空指针未能重启啊?我觉得是这样的
      

  6.   

    I/ActivityManager(  218): Low Memory: No more background processes.I/ActivityManager(  218): Process zm.Data2 (pid 6228) has died.W/ActivityManager(  218): Scheduling restart of crashed service zm.Data2/.MyService in 5000msW/ActivityManager(  218): Scheduling restart of crashed service zm.Data2/.TrafficService in 14997msI/ActivityManager(  218): Low Memory: No more background processes.I/ActivityManager(  218): Start proc zm.Data2 for service zm.Data2/.MyService: pid=6270 uid=10028 gids={1007, 3003, 1015}E/AndroidRuntime( 6270): FATAL EXCEPTION: mainE/AndroidRuntime( 6270): java.lang.RuntimeException: Unable to start service zm.Data2.MyService@4051cbd8 with null: java.lang.NullPointerExceptionE/AndroidRuntime( 6270):  at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2173)E/AndroidRuntime( 6270):  at android.app.ActivityThread.access$2800(ActivityThread.java:123)E/AndroidRuntime( 6270):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1002)E/AndroidRuntime( 6270):  at android.os.Handler.dispatchMessage(Handler.java:99)E/AndroidRuntime( 6270):  at android.os.Looper.loop(Looper.java:130)E/AndroidRuntime( 6270):  at android.app.ActivityThread.main(ActivityThread.java:3835)E/AndroidRuntime( 6270):  at java.lang.reflect.Method.invokeNative(Native Method)E/AndroidRuntime( 6270):  at java.lang.reflect.Method.invoke(Method.java:507)E/AndroidRuntime( 6270):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:864)E/AndroidRuntime( 6270):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:622)E/AndroidRuntime( 6270):  at dalvik.system.NativeStart.main(Native Method)E/AndroidRuntime( 6270): Caused by: java.lang.NullPointerExceptionE/AndroidRuntime( 6270):  at zm.Data2.MyService.onStartCommand(MyService.java:220)E/AndroidRuntime( 6270):  at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2160)E/AndroidRuntime( 6270):  ... 10 more这是log日志,其中红色部分是我的应用和service,大家看一看是不是service由于low memory而被杀死,之后由于空指针未能重启啊?我觉得是这样的
      

  7.   

    onStartCommand中,空指针啊,
    java.lang.NullPointerException
    zm.Data2.MyService.onStartCommand(MyService.java:220)
    看你的代码的220行
      

  8.   

    是空指针,这是后台service被杀死后之后又重启service造成的,我的service启动是由按钮启动的,里面有一些标志位的,自动重启标志位为空,所以报空指针错误。
      

  9.   

    我也遇到了这样的问题07-20 14:23:32.389: DEBUG/wpa_supplicant(859): wpa_driver_priv_driver_cmd LinkSpeed 39 len = 12, 12
    07-20 14:23:32.389: DEBUG/wpa_supplicant(859): REPLY: LinkSpeed 39
    07-20 14:23:34.509: DEBUG/PowerManagerService(181): userActivity mLastEventTime=185859585 time=186360278 mUserActivityAllowed=true mUserState=0x3 mWakeLockState=0x1 mProximitySensorActive=false timeoutOverride=-1 force=false
    07-20 14:23:34.509: DEBUG/PowerManagerService(181): reactivateScreenLocksLocked mProxIgnoredBecauseScreenTurnedOff=false
    07-20 14:23:34.509: DEBUG/PowerManagerService(181): setPowerState: mPowerState=0x3 newState=0x3 noChangeLights=false reason=2 mProximitySensorActive=false
    07-20 14:23:34.509: DEBUG/PowerManagerService(181): setTimeoutLocked now=186360278 timeoutOverride=-1 nextState=3 when=186366278
    07-20 14:23:34.609: DEBUG/PowerManagerService(181): userActivity mLastEventTime=186360278 time=186360382 mUserActivityAllowed=true mUserState=0x3 mWakeLockState=0x1 mProximitySensorActive=false timeoutOverride=-1 force=false
    07-20 14:23:34.609: DEBUG/PowerManagerService(181): reactivateScreenLocksLocked mProxIgnoredBecauseScreenTurnedOff=false
    07-20 14:23:34.609: DEBUG/PowerManagerService(181): setPowerState: mPowerState=0x3 newState=0x3 noChangeLights=false reason=2 mProximitySensorActive=false
    07-20 14:23:34.609: DEBUG/PowerManagerService(181): setTimeoutLocked now=186360382 timeoutOverride=-1 nextState=3 when=186366382
    07-20 14:23:34.999: INFO/ActivityManager(181): Process com.zuji.haoyoujie.ui (pid 10975) has died.
    07-20 14:23:34.999: WARN/ActivityManager(181): Scheduling restart of crashed service com.zuji.haoyoujie.ui/com.zuji.haoyoujie.service.MessageService in 5000ms
    07-20 14:23:34.999: WARN/ActivityManager(181): Scheduling restart of crashed service com.zuji.haoyoujie.ui/com.zuji.haoyoujie.control.ZujiService in 15000ms

    07-20 14:23:35.009: ERROR/QC_MP3DEC(107): Execute flush for both I/p O/p port
    07-20 14:23:35.009: ERROR/QC_MP3DEC(107): Killing timer thread...
    07-20 14:23:35.009: ERROR/QC_MP3DEC(107): Timer thread exited
    07-20 14:23:35.009: ERROR/QC_MP3DEC(107): Component-deinit m_drv_fd = -1
    07-20 14:23:35.009: ERROR/QC_MP3DEC(107): COMPONENT DEINIT...
    07-20 14:23:35.009: ERROR/QC_MP3DEC(107): OMX MP3 component destroyed
    07-20 14:23:35.009: DEBUG/AudioSink(107): stop
    07-20 14:23:35.009: DEBUG/AudioTrack(107): stop 0x40448
    07-20 14:23:35.009: DEBUG/AudioTrack(107): stop 0x40448
    07-20 14:23:35.009: VERBOSE/AudioPolicyManagerBase(107): releaseOutput() 1
    07-20 14:23:35.009: DEBUG/AudioFlinger(107): remove track (4096) and delete from mixer
    07-20 14:23:35.009: INFO/WindowManager(181): WIN DEATH: Window{408b6410 com.zuji.haoyoujie.ui/com.zuji.haoyoujie.ui.Tuijian paused=false}
    07-20 14:23:35.029: ERROR/InputDispatcher(181): channel '40a0a458 com.zuji.haoyoujie.ui/com.zuji.haoyoujie.ui.IM_Chat (server)' ~ Consumer closed input channel or an error occurred.  events=0x8
    07-20 14:23:35.029: ERROR/InputDispatcher(181): channel '40a0a458 com.zuji.haoyoujie.ui/com.zuji.haoyoujie.ui.IM_Chat (server)' ~ Channel is unrecoverably broken and will be disposed!
    07-20 14:23:35.029: DEBUG/PowerManagerService(181): setScreenBrightnessOverride: brightness= -1, mScreenBrightnessOverride=-1
    07-20 14:23:35.029: DEBUG/PowerManagerService(181): setButtonBrightnessOverride -1
    07-20 14:23:35.029: INFO/WindowManager(181): WIN DEATH: Window{40b1f6e8 com.zuji.haoyoujie.ui/com.zuji.haoyoujie.ui.MainActivity paused=false}
    07-20 14:23:35.039: DEBUG/PowerManagerService(181): setScreenBrightnessOverride: brightness= -1, mScreenBrightnessOverride=-1
    07-20 14:23:35.039: DEBUG/PowerManagerService(181): setButtonBrightnessOverride -1
    07-20 14:23:35.049: INFO/WindowManager(181): WIN DEATH: Window{409f8788 com.zuji.haoyoujie.ui/com.zuji.haoyoujie.ui.OtherUserDetail paused=false}
    07-20 14:23:35.049: DEBUG/PowerManagerService(181): setScreenBrightnessOverride: brightness= -1, mScreenBrightnessOverride=-1
    07-20 14:23:35.059: DEBUG/PowerManagerService(181): setButtonBrightnessOverride -1
    07-20 14:23:35.059: INFO/WindowManager(181): WIN DEATH: Window{40a0a458 com.zuji.haoyoujie.ui/com.zuji.haoyoujie.ui.IM_Chat paused=false}
    07-20 14:23:35.059: DEBUG/PowerManagerService(181): setScreenBrightnessOverride: brightness= -1, mScreenBrightnessOverride=-1
    07-20 14:23:35.069: ERROR/JavaBinder(181): Transact on 0x7b0fe8 in Java object 0x4066e9f8 with code 5 failed