Android:系统进程中的致命异常:ActivityManager

问题描述

经过几个月的工作,我工作的公司上的一些Android平板电脑设备(扎根)在启动动画后随机显示“白屏”。另外,其中一些会重新启动几次,然后在白屏上建立。

对于那些正在重启的设备,我可以在logcat上看到它正在停止,但以下情况除外:

D/NetlinkEvent(  167): NL subsys is 'block'
D/NetlinkEvent(  167): NL param 'DEVPATH=/devices/sprd-sdhci.3/mmc_host/mmc0/mmc0:0001/block/mmcblk0/mmcblk0p21'
D/NetlinkEvent(  167): NL param 'MAJOR=179'
D/NetlinkEvent(  167): NL param 'MInor=21'
D/NetlinkEvent(  167): NL param 'DEVNAME=mmcblk0p21'
D/NetlinkEvent(  167): NL param 'DEVTYPE=partition'
D/NetlinkEvent(  167): NL param 'PARTN=21'
D/NetlinkEvent(  167): NL param 'PARTNAME=userdata'
I/DirectVolume(  167): ++ok_vold----in_handleBolckEvent() in_if*it:/devices/sprd-sdhci.3/mmc_host/mmc0-----
E/DirectVolume(  167): making device node '/dev/block/vold/179:21'
W/DirectVolume(  167): Ignore partition userdata
D/WCND    (  171): is_cp2_alive_ok: open polling interface: /dev/spipe_wcn0,fd = 12
D/WCND    (  171): is_cp2_alive_ok: loop: /dev/spipe_wcn0 is OK
I/Zygote  (  178): ...preloaded 1463 classes in 2501ms.
D/libEGL  (  178): loaded /system/lib/egl/libGLES_mali.so
I/Zygote  (  178): ZytoteInit preload finish
D/dalvikvm(  178): GC_EXPLICIT freed 467K,16% free 2665K/3136K,paused 2ms+2ms,total 19ms
D/dalvikvm(  178): GC_EXPLICIT freed 4K,16% free 2660K/3136K,paused 1ms+1ms,total 16ms
D/dalvikvm(  178): GC_EXPLICIT freed <1K,total 16ms
I/dalvikvm(  178): System server process 647 has been created
I/Zygote  (  178): Accepting command socket connections
D/SensorService(  647): nuSensorService starting...
I/SystemServer(  647): Entered the Android system server!
D/Sensors (  647): AnumSensors=1; 1
E/IAtChannel(  180): Couldn't get connection to atchannel0
D/audio_hw_primary(  180): do_cmd_dual Switch incall AT command [AT+VGR=6][ERROR]
E/audio_hw_primary(  180): do_voice_command: X
I/audio_hw_primary(  180):  voice_command_thread_entry looping done.
I/audio_hw_primary(  180):  voice_command_thread_entry looping Now...
D/SDCARD  (  188): missing packages.list; retrying
D/SDCARD  (  191): missing packages.list; retrying
D/Sensors (  647): PnumSensors=2; 2
D/Sensors (  647): activate handle=0; drv=0
D/Sensors (  647): activate handle=4; drv=1
D/Sensors (  647): PlsSensor::enable en=0; newState=0; what=0; mEnabled=0
I/SensorService(  647): STK8312 3-axis Accelerometer
I/SensorService(  647): AL3006 Proximity sensor
D/SensorService(  647): Max socket buffer size 163840
D/SensorService(  647): nuSensorService thread starting...
I/installd(  181): new connection
I/SystemServer(  647): Waiting for installd to be ready.
I/Installer(  647): connecting...
I/SystemServer(  647): Power Manager
D/PowerManagerService(  647): Acquiring suspend blocker "PowerManagerService.display".
I/SystemServer(  647): Activity Manager
W/dalvikvm(  647): threadid=14: thread exiting with uncaught exception (group=0x415e5bc0)
I/Process (  647): Sending signal. PID: 647 SIG: 9
E/installd(  181): eof
E/installd(  181): Failed to read size
I/installd(  181): closing connection
I/Zygote  (  178): Exit zygote because system server (647) has terminated
E/AndroidRuntime(  647): *** FATAL EXCEPTION IN SYstem PROCESS: ActivityManager
E/AndroidRuntime(  647): android.content.res.Resources$NotFoundException: Resource ID #0x10e0009
E/AndroidRuntime(  647):        at android.content.res.Resources.getValue(Resources.java:1139)
E/AndroidRuntime(  647):        at android.content.res.SPRDResources.getValue(SPRDResources.java:182)
E/AndroidRuntime(  647):        at android.content.res.Resources.getInteger(Resources.java:923)
E/AndroidRuntime(  647):        at com.android.server.am.ProcessList.updateOomLevels(ProcessList.java:245)
E/AndroidRuntime(  647):        at com.android.server.am.ProcessList.<init>(ProcessList.java:179)
E/AndroidRuntime(  647):        at com.android.server.am.ActivityManagerService.<init>(ActivityManagerService.java:485)
E/AndroidRuntime(  647):        at com.android.server.am.ActivityManagerServiceEx.<init>(ActivityManagerServiceEx.java:48)
E/AndroidRuntime(  647):        at com.android.server.am.ActivityManagerService$AThread.run(ActivityManagerService.java:1955)
E/AndroidRuntime(  647): Error reporting crash
E/AndroidRuntime(  647): java.lang.NullPointerException
E/AndroidRuntime(  647):        at com.android.internal.os.RuntimeInit$UncaughtHandler.uncaughtException(RuntimeInit.java:92)
E/AndroidRuntime(  647):        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:693)
E/AndroidRuntime(  647):        at java.lang.ThreadGroup.uncaughtException(ThreadGroup.java:690)
I/ServiceManager(  166): service 'power' died
I/ServiceManager(  166): service 'sensorservice' died
D/SDCARD  (  188): missing packages.list; retrying
D/SDCARD  (  191): missing packages.list; retrying
D/WCND    (  171): is_cp2_alive_ok: open polling interface: /dev/spipe_wcn0,fd = 12
D/WCND    (  171): is_cp2_alive_ok: loop: /dev/spipe_wcn0 is OK
D/SDCARD  (  188): missing packages.list; retrying
D/SDCARD  (  191): missing packages.list; retrying
D/SDCARD  (  188): missing packages.list; retrying
D/SDCARD  (  191): missing packages.list; retrying
D/WCND    (  171): is_cp2_alive_ok: open polling interface: /dev/spipe_wcn0,fd = 12
D/WCND    (  171): is_cp2_alive_ok: loop: /dev/spipe_wcn0 is OK
D/SDCARD  (  188): missing packages.list; retrying
D/SDCARD  (  191): missing packages.list; retrying
D/WCND    (  171): is_cp2_alive_ok: open polling interface: /dev/spipe_wcn0,fd = 12
D/WCND    (  171): is_cp2_alive_ok: loop: /dev/spipe_wcn0 is OK
D/SDCARD  (  188): missing packages.list; retrying
D/SDCARD  (  191): missing packages.list; retrying
PS C:\adb>

对于那些正在“白屏”上工作的人,我可以看到主要的GUI正在白色卵石的背面运行。我可以通过截屏确认并在计算机上打开它。另外,触摸屏还在工作,我可以通过GUI的按钮选择一些功能。当我拍摄另一个屏幕截图时,也会对此进行检查。

为什么ActivityManager有时会显示致命异常? 为什么当系统启动时,我只能看到没有任何彩色像素的空白屏幕?

谢谢。

解决方法

对于那些有趣的人,当我在设备上重新加载Android ROM时,此问题已解决。我们怀疑这是因为该设备直接工作了3年以上,并且在内部MMC内存中节省了大量日志,所以我们达到了内存周期写限制,并且系统损坏了。因此,重新加载ROM后,设备将再次开始正常工作。也许我们将替代该MMC来为这些设备提供更多的“寿命”。