在播放文件时会在函数BOSA_ST_InitComponentLoader中死掉,打印信息如下:
E/PV ( 31): PVLOG:TID(0xdf30):Time=90:BOSA_ST_InitComponentLoader IN
E/PV ( 31): PVLOG:TID(0xdf30):Time=91:open lib:libomx_maddec_sharedlibrary.so
E/PV ( 31): PVLOG:TID(0xdf30):Time=98:open omx_component_library_Setup
E/PV ( 31): PVLOG:TID(0xdf30):Time=99:can not open omx_component_library_Setup
I/DEBUG ( 28): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG ( 28): Build fingerprint: 'generic/generic/generic/:2.1-update1/ECLAIR/eng.root.20101108.192922:eng/test-keys'
I/DEBUG ( 28): pid: 31, tid: 241 >>> /system/bin/mediaserver <<<
I/DEBUG ( 28): signal 11 (SIGSEGV), fault addr deadbaad
I/DEBUG ( 28): r0 00000000 r1 afe131cd r2 00000027 r3 00000000
I/DEBUG ( 28): r4 00000000 r5 deadbaad r6 00002eec r7 40000000
I/DEBUG ( 28): r8 00100000 r9 a9d1b8e5 10 40507000 fp 0000df08
I/DEBUG ( 28): ip ffffffff sp 40606cd8 lr afe14189 pc afe10af8 cpsr 40000030
I/DEBUG ( 28): #00 pc 00010af8 /system/lib/libc.so
I/DEBUG ( 28): #01 pc 0000b4e2 /system/lib/libc.so
I/DEBUG ( 28): #02 pc 00007b72 /system/lib/libomx_bellagio_sharedlibrary.so
I/DEBUG ( 28): #03 pc 000035fc /system/lib/libomx_bellagio_sharedlibrary.so
I/DEBUG ( 28): #04 pc 000024aa /system/lib/libomx_bellagio_sharedlibrary.so
I/DEBUG ( 28): #05 pc 00043d28 /system/lib/libopencore_common.so
I/DEBUG ( 28): #06 pc 00043efc /system/lib/libopencore_common.so
I/DEBUG ( 28): #07 pc 00043f6c /system/lib/libopencore_common.so
I/DEBUG ( 28): #08 pc 000bfefa /system/lib/libopencore_player.so
I/DEBUG ( 28): #09 pc 000c0138 /system/lib/libopencore_player.so
I/DEBUG ( 28): #10 pc 0001b94a /system/lib/libutils.so
I/DEBUG ( 28): #11 pc 0000fda0 /system/lib/libc.so
I/DEBUG ( 28): #12 pc 0000f874 /system/lib/libc.so
…………………………………
I/DEBUG ( 28): 40606d2c 8070b0f8 /system/lib/libomx_bellagio_sharedlibrary.so
I/DEBUG ( 28): 40606d30 0002dea8 [heap]
I/DEBUG ( 28): 40606d34 80707b76 /system/lib/libomx_bellagio_sharedlibrary.so
E/MediaPlayer( 221): Unable to to create media player
W/MediaPlayer( 53): MediaPlayer server died!
W/AudioSystem( 221): AudioFlinger server died!
W/MediaPlayer( 221): MediaPlayer server died!
I/ServiceManager( 26): service 'media.audio_flinger' died
I/ServiceManager( 26): service 'media.player' died
I/ServiceManager( 26): service 'media.camera' died
I/ServiceManager( 26): service 'media.audio_policy' died
W/AudioSystem( 53): AudioFlinger server died!
W/AudioSystem( 53): AudioPolicyService server died!
看打印信息,貌似跟内存有关系
后来发现:在代码中有这一行:
#define OMX_MAX_STRINGNAME_SIZE 128
char* libname;
libname = malloc(OMX_MAX_STRINGNAME_SIZE * 2);
libname = “libomx_maddec_sharedlibrary.so”;
把malloc屏蔽掉,这个问题就解决了,难不成是malloc分配的太大了。