jiajunhui / PlayerBase

The basic library of Android player will process complex business components. The access is simple。Android播放器基础库,专注于播放视图组件的高复用性和组件间的低耦合,轻松处理复杂业务。
Apache License 2.0
2.92k stars 437 forks source link

so库报错导致app闪退 #132

Closed fngang closed 3 years ago

fngang commented 3 years ago

在不断循环播放下会出现闪退,闪退时机不确定,快的不到一小时,慢的几天,测试环境是不断电不关屏前台一直循环播放单视频,视频源为局域网内的在线视频,经测试跟视频源文件没关系,playbase版本在3.3.5和3.3.9都有这问题,下面这个信息是3.3.5版本的,从bugly的日志看到是官网提供的armeabi-v7a下的so库报错,最后面提供了bugly的解决方案.

补充: 这个问题可能跟网络较差有关,另外刚发现一个现象,一个三分钟的视频播放完后进入黑屏,但播放时间一直在增加,播放到48分钟还在播放,就是屏幕黑屏.

以下信息全都来自bugly:

异常进程#线程: 包名(32298)#JNISurfaceTextu(1332) 发生时间: 2020-09-24 12:39:55 上报时间: 2020-09-24 12:40:01 使用时长: 38 分 21 秒 前后台状态: 前台 设备机型: 华为 T1-821W 系统版本: Android 5.1.1,level 22 ROM: HuaWei/EMOTION CPU架构: armeabi-v7a

日志如下(关键在#23~#27):

JNISurfaceTextu(7256)

SIGSEGV(SEGV_MAPERR)

00 pc 00214786 /system/lib/libart.so (art::ReferenceTable::Dump(std::1::basic_ostream<char, std::__1::char_traits >&, std::1::vector<art::GcRoot, art::TrackingAllocator<art::GcRoot, (art::AllocatorTag)8> >&)+765) [armeabi-v7a]

01 pc 0015729b /system/lib/libart.so (art::IndirectReferenceTable::Dump(std::__1::basic_ostream<char, std::__1::char_traits >&) const+130) [armeabi-v7a]

02 pc 001573d7 /system/lib/libart.so (art::IndirectReferenceTable::Add(unsigned int, art::mirror::Object*)+238) [armeabi-v7a]

03 pc 001a789d /system/lib/libart.so (art::JNI::NewWeakGlobalRef(_JNIEnv, _jobject)+312) [armeabi-v7a]

04 pc 000bda5f /system/lib/libart.so (art::CheckJNI::NewWeakGlobalRef(_JNIEnv, _jobject)+50) [armeabi-v7a]

05 pc 00194a39 /system/lib/libart.so (art::ObjectRegistry::InternalAdd(art::mirror::Object*)+548) [armeabi-v7a]

06 pc 000ec315 /system/lib/libart.so (art::Dbg::GetThreadId(art::Thread*)+296) [armeabi-v7a]

07 pc 00187e75 /system/lib/libart.so (art::JDWP::JdwpState::PostThreadChange(art::Thread*, bool)+212) [armeabi-v7a]

08 pc 000ec0db /system/lib/libart.so (art::Dbg::PostThreadStart(art::Thread*)+26) [armeabi-v7a]

09 pc 0022e7f9 /system/lib/libart.so (art::Thread::Attach(char const, bool, _jobject, bool)+448) [armeabi-v7a]

10 pc 00218395 /system/lib/libart.so (art::Runtime::AttachCurrentThread(char const, bool, _jobject, bool)+12) [armeabi-v7a]

11 pc 001bb2d7 /system/lib/libart.so (art::JII::AttachCurrentThread(_JavaVM*, _JNIEnv*, void)+190) [armeabi-v7a]

12 pc 000bdd59 /system/lib/libart.so (art::CheckJII::AttachCurrentThread(_JavaVM*, _JNIEnv*, void)+96) [armeabi-v7a]

13 pc 00093a57 /system/lib/libandroid_runtime.so (android::JNISurfaceTextureContext::getJNIEnv(bool*)+50) [armeabi-v7a]

14 pc 00093b6d /system/lib/libandroid_runtime.so (android::JNISurfaceTextureContext::onFrameAvailable(android::BufferItem const&)+12) [armeabi-v7a]

15 pc 0002c931 /system/lib/libgui.so (android::ConsumerBase::onFrameAvailable(android::BufferItem const&)+108) [armeabi-v7a]

16 pc 000285c7 /system/lib/libgui.so (android::BufferQueue::ProxyConsumerListener::onFrameAvailable(android::BufferItem const&)+26) [armeabi-v7a]

17 pc 0002baa7 /system/lib/libgui.so (android::BufferQueueProducer::queueBuffer(int, android::IGraphicBufferProducer::QueueBufferInput const&, android::IGraphicBufferProducer::QueueBufferOutput*)+602) [armeabi-v7a]

18 pc 00037565 /system/lib/libgui.so (android::Surface::queueBuffer(ANativeWindowBuffer*, int)+332) [armeabi-v7a]

19 pc 00037d5b /system/lib/libgui.so (android::Surface::unlockAndPost()+82) [armeabi-v7a]

20 pc 00036fbf /system/lib/libgui.so (android::Surface::dispatchUnlockAndPost(std::__va_list)+6) [armeabi-v7a]

21 pc 0003681d /system/lib/libgui.so (android::Surface::hook_perform(ANativeWindow*, int, ...)+22) [armeabi-v7a]

22 pc 00008c17 /system/lib/libandroid.so (ANativeWindow_unlockAndPost+6) [armeabi-v7a]

**#23 pc 0001228f /data/app/包名-2/lib/arm/libijksdl.so (SDL_Android_NativeWindow_display_l+262) [armeabi-v7a]

24 pc 00015665 /data/app/包名-2/lib/arm/libijksdl.so [armeabi-v7a]

25 pc 00010efb /data/app/包名-2/lib/arm/libijkplayer.so [armeabi-v7a]

26 pc 00013c61 /data/app/包名-2/lib/arm/libijkplayer.so [armeabi-v7a]

27 pc 0000f71f /data/app/包名-2/lib/arm/libijksdl.so [armeabi-v7a]**

28 pc 000135d3 /system/lib/libc.so (__pthread_start(void*)+30) [armeabi-v7a]

29 pc 000115f3 /system/lib/libc.so (__start_thread+6) [armeabi-v7a]

java: [Failed to get Java stack]

系统日志(错误和告警类型加粗显示):

--------- beginning of main 09-24 12:35:46.700 32298 707 I IJKMEDIA: ffp_toggle_buffering: completed: OK 09-24 12:35:46.700 32298 705 D IJKMEDIA: ijkmp_get_msg: FFP_MSG_COMPLETED 09-24 12:35:46.700 32298 705 D IJKMEDIA: FFP_MSG_COMPLETED: 09-24 12:35:46.700 32298 32298 D IJKMEDIA: ijkmp_stop() 09-24 12:35:46.700 32298 32298 D IJKMEDIA: ijkmp_stop()=0 09-24 12:35:46.700 32298 32298 D IJKMEDIA: IjkMediaPlayer_reset 09-24 12:35:46.700 32298 32298 D IJKMEDIA: IjkMediaPlayer_release 09-24 12:35:46.700 32298 32298 D IJKMEDIA: ijkmp_set_android_surface(surface=0x0) 9-24 12:35:46.700 32298 706 I IJKMEDIA: SDL_JNI_DetachThreadEnv: [706] 09-24 12:35:46.700 32298 32298 D IJKMEDIA: ffpipeline_set_surface() 09-24 12:35:46.700 32298 32298 D IJKMEDIA: ijkmp_set_android_surface(surface=0x0)=void 09-24 12:35:46.700 32298 32298 D IJKMEDIA: ijkmp_shutdown_l() 09-24 12:35:46.700 32298 717 I IJKMEDIA: convert image convert_frame_count = 0 09-24 12:35:46.700 32298 717 I IJKMEDIA: SDL_JNI_DetachThreadEnv: [717] 09-24 12:35:46.700 32298 711 I IJKMEDIA: SDL_JNI_DetachThreadEnv: [711] 09-24 12:35:46.700 32298 705 D IJKMEDIA: message_loop exit 09-24 12:35:46.700 32298 705 I IJKMEDIA: SDL_JNI_DetachThreadEnv: [705] 09-24 12:35:46.810 32298 707 I IJKMEDIA: SDL_JNI_DetachThreadEnv: [707] 09-24 12:35:46.810 32298 710 D android.media.AudioTrack: [HSM] AudioTrace stop() uid: 10287, pid: 32298 09-24 12:35:46.810 32298 710 I IJKMEDIA: SDL_JNI_DetachThreadEnv: [710]

09-24 12:35:46.840 32298 32298 E IJKMEDIA: SDL_Overlay(ffmpeg): overlay_free_l(0xbb134bf0) 09-24 12:35:46.840 32298 32298 E IJKMEDIA: SDL_Overlay(ffmpeg): overlay_free_l(0xbb48af98) 09-24 12:35:46.840 32298 32298 E IJKMEDIA: SDL_Overlay(ffmpeg): overlay_free_l(0xbb6444f8)

09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_shutdown_l()=void 09-24 12:35:46.850 32298 32298 D IJKMEDIA: IjkMediaPlayer_native_setup 09-24 12:35:46.850 32298 32298 I IJKMEDIA: av_version_info: ff3.4--ijk0.8.7--20180103--001 09-24 12:35:46.850 32298 32298 I IJKMEDIA: ijk_version_info: k0.8.8 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ffpipeline_create_from_android() 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_set_inject_opaque(0x100b82) 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_set_inject_opaque()=void 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_set_ijkio_inject_opaque(0x100b82) 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_set_ijkio_inject_opaque()=void 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_android_set_mediacodec_select_callback() 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ffpipeline_set_mediacodec_select_callback 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_android_set_mediacodec_select_callback()=void 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_dec_ref(): ref=0 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_shutdown_l() 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_shutdown_l()=void 09-24 12:35:46.850 32298 32298 D IJKMEDIA: IjkMediaPlayer_setDataSourceAndHeaders 09-24 12:35:46.850 32298 32298 V IJKMEDIA: setDataSource: path http://192.168.1.100:8000/conference/BD.mp4 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_set_data_source(url="http://192.168.1.100:8000/conference/BD.mp4") 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_set_data_source(url="http://192.168.1.100:8000/conference/BD.mp4")=0 09-24 12:35:46.850 32298 32298 D IJKMEDIA: IjkMediaPlayer_prepareAsync 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_prepare_async() 09-24 12:35:46.850 32298 32298 I IJKMEDIA: ===== versions ===== 09-24 12:35:46.850 32298 32298 I IJKMEDIA: ijkplayer : k0.8.8 09-24 12:35:46.850 32298 32298 I IJKMEDIA: FFmpeg : ff3.4--ijk0.8.7--20180103--001 09-24 12:35:46.850 32298 32298 I IJKMEDIA: libavutil : 55.78.100 09-24 12:35:46.850 32298 32298 I IJKMEDIA: libavcodec : 57.107.100 09-24 12:35:46.850 32298 32298 I IJKMEDIA: libavformat : 57.83.100 09-24 12:35:46.850 32298 32298 I IJKMEDIA: libswscale : 4.8.100 09-24 12:35:46.850 32298 32298 I IJKMEDIA: libswresample: 2.9.100 09-24 12:35:46.850 32298 32298 I IJKMEDIA: ===== options ===== 09-24 12:35:46.850 32298 32298 I IJKMEDIA: format-opts : ijkapplication = -1153305312 09-24 12:35:46.850 32298 32298 I IJKMEDIA: format-opts : ijkiomanager = -1134341904 09-24 12:35:46.850 32298 32298 I IJKMEDIA: =================== 09-24 12:35:46.850 32298 32298 D IJKMEDIA: ijkmp_prepare_async()=0 09-24 12:35:46.850 32298 1331 I IJKMEDIA: SDL_RunThread: [1331] ff_msg_loop 09-24 12:35:46.850 32298 1331 D IJKMEDIA: message_loop 09-24 12:35:46.850 32298 1331 D IJKMEDIA: FFP_MSG_FLUSH: 09-24 12:35:46.860 32298 1333 I IJKMEDIA: SDL_RunThread: [1333] ff_read 09-24 12:35:46.860 32298 1332 I IJKMEDIA: SDL_RunThread: [1332] ff_vout 09-24 12:35:46.860 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 1 09-24 12:35:46.860 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131073 09-24 12:35:46.870 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131074 09-24 12:35:46.880 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 2 09-24 12:35:48.120 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 3 09-24 12:35:48.120 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131073 09-24 12:35:48.130 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131074 09-24 12:35:48.170 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 4

09-24 12:35:48.500 32298 1333 E IJKMEDIA: Option ijkiomanager not found.

09-24 12:35:48.500 32298 1331 D IJKMEDIA: FFP_MSG_OPEN_INPUT: 09-24 12:35:48.500 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 3 09-24 12:35:48.500 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131073 09-24 12:35:48.670 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 131074 09-24 12:35:48.690 32298 1333 I tv.danmaku.ijk.media.player.IjkMediaPlayer: onNativeInvoke 4 09-24 12:35:48.710 32298 1331 D IJKMEDIA: FFP_MSG_FIND_STREAM_INFO: 09-24 12:35:48.710 32298 1333 I IJKMEDIA: max_frame_duration: 10.000 09-24 12:35:48.710 32298 1333 I IJKMEDIA: Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'http://192.168.1.100:8000/conference/BD.mp4': 09-24 12:35:48.720 32298 1333 I IJKMEDIA: Metadata: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: major_brand : 09-24 12:35:48.720 32298 1333 I IJKMEDIA: isom 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: minor_version : 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 1 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: compatible_brands: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: isom 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: creation_time : 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 2017-09-13T16:23:21.000000Z 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: Duration: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 00:43:07.50 09-24 12:35:48.720 32298 1333 I IJKMEDIA: , start: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 0.000000 09-24 12:35:48.720 32298 1333 I IJKMEDIA: , bitrate: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 1732 kb/s 9-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: Stream #0:0 09-24 12:35:48.720 32298 1333 I IJKMEDIA: (und) 09-24 12:35:48.720 32298 1333 I IJKMEDIA: : Video: h264 (avc1 / 0x31637661), yuv420p(tv), 1280x720, 1600 kb/s 09-24 12:35:48.720 32298 1333 I IJKMEDIA: , 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 23.98 fps, 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 23.98 tbr, 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 24k tbn, 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 47.95 tbc 09-24 12:35:48.720 32298 1333 I IJKMEDIA: (default) 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: Metadata: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: creation_time : 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 2017-09-13T16:22:19.000000Z 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: handler_name : 09-24 12:35:48.720 32298 1333 I IJKMEDIA: L-SMASH Video Media Handler 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: encoder : 09-24 12:35:48.720 32298 1333 I IJKMEDIA: AVC Coding 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: Stream #0:1 09-24 12:35:48.720 32298 1333 I IJKMEDIA: (und) 09-24 12:35:48.720 32298 1333 I IJKMEDIA: : Audio: aac (mp4a / 0x6134706D), 48000 Hz, stereo, fltp, 127 kb/s 09-24 12:35:48.720 32298 1333 I IJKMEDIA: (default) 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: Metadata: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: creation_time : 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 2017-09-13T16:22:20.000000Z 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: handler_name : 09-24 12:35:48.720 32298 1333 I IJKMEDIA: Sound Media Handler 09-24 12:35:48.720 32298 1333 I IJKMEDIA: 09-24 12:35:48.720 32298 1333 I IJKMEDIA: SDL_Android_AudioTrack: CHANNEL_OUT_STEREO 09-24 12:35:48.720 32298 1333 I IJKMEDIA: SDL_Android_AudioTrack: ENCODING_PCM_16BIT 09-24 12:35:48.720 32298 1333 I IJKMEDIA: SDL_Android_AudioTrack_new_from_spec: init volume as 1.000000/(0.000000,1.000000) 09-24 12:35:48.720 32298 1333 I IJKMEDIA: audio_session_id = 391 09-24 12:35:48.720 32298 1333 I IJKMEDIA: AudioCodec: avcodec, aac 09-24 12:35:48.730 32298 1339 I IJKMEDIA: SDL_RunThread: [1339] ff_aout_android 09-24 12:35:48.730 32298 1340 I IJKMEDIA: SDL_RunThread: [1340] ff_audio_dec 09-24 12:35:48.730 32298 1333 I IJKMEDIA: VideoCodec: avcodec, h264

09-24 12:35:48.730 32298 1333 W IJKMEDIA: fps: 23.976024 (normal) 09-24 12:35:48.730 32298 1333 W IJKMEDIA: fps: 23.976024 (normal)

09-24 12:35:48.730 32298 1331 D IJKMEDIA: FFP_MSG_COMPONENT_OPEN: 09-24 12:35:48.730 32298 1331 D IJKMEDIA: FFP_MSG_VIDEO_SIZE_CHANGED: 1280, 720 09-24 12:35:48.730 32298 1331 D IJKMEDIA: FFP_MSG_SAR_CHANGED: 0, 1 09-24 12:35:48.730 32298 1331 D IJKMEDIA: ijkmp_get_msg: FFP_MSG_PREPARED 09-24 12:35:48.730 32298 1331 D IJKMEDIA: FFP_MSG_PREPARED: 09-24 12:35:48.730 32298 1339 D android.media.AudioTrack: [HSM] AudioTrace play() uid: 10287, pid: 32298 09-24 12:35:48.730 32298 1347 I IJKMEDIA: SDL_RunThread: [1347] ff_video_dec 09-24 12:35:48.730 32298 1331 D IJKMEDIA: FFP_MSG_VIDEO_ROTATION_CHANGED: 0

09-24 12:35:48.730 32298 32298 W tv.danmaku.ijk.media.player.IjkMediaPlayer: setScreenOnWhilePlaying(true) is ineffective for Surface

09-24 12:35:48.730 32298 32298 D IJKMEDIA: IjkMediaPlayer_setVideoSurface 09-24 12:35:48.730 32298 32298 D IJKMEDIA: ijkmp_set_android_surface(surface=0xbeab3cf0) 09-24 12:35:48.730 32298 32298 D IJKMEDIA: ffpipeline_set_surface() 09-24 12:35:48.730 32298 32298 D IJKMEDIA: ijkmp_set_android_surface(surface=0xbeab3cf0)=void 09-24 12:35:48.730 32298 32298 D IJKMEDIA: IjkMediaPlayer_start 09-24 12:35:48.730 32298 32298 D IJKMEDIA: ijkmp_start() 09-24 12:35:48.730 32298 32298 D IJKMEDIA: ijkmp_start()=0 09-24 12:35:48.730 32298 1331 D IJKMEDIA: ijkmp_get_msg: FFP_REQ_START 09-24 12:35:48.730 32298 1331 D IJKMEDIA: FFP_MSG_AUDIO_RENDERING_START: 09-24 12:35:48.770 32298 1347 D IJKMEDIA: SDL_VoutFFmpeg_CreateOverlay(w=1280, h=720, fmt=RV32(0x32335652, dp=0xbc9a84a8) 09-24 12:35:48.770 32298 1331 D IJKMEDIA: FFP_MSG_VIDEO_SIZE_CHANGED: 1280, 720 09-24 12:35:48.790 32298 1347 D IJKMEDIA: Video: first frame decoded 09-24 12:35:48.790 32298 1331 D IJKMEDIA: FFP_MSG_VIDEO_DECODED_START: 09-24 12:35:48.790 32298 1347 D IJKMEDIA: SDL_VoutFFmpeg_CreateOverlay(w=1280, h=720, fmt=RV32(0x32335652, dp=0xbc9a84a8) 09-24 12:35:48.790 32298 1331 D IJKMEDIA: FFP_MSG_VIDEO_SIZE_CHANGED: 1280, 720 09-24 12:35:48.810 32298 1339 D IJKMEDIA: avcodec/Audio: first frame decoded 09-24 12:35:48.810 32298 1347 D IJKMEDIA: SDL_VoutFFmpeg_CreateOverlay(w=1280, h=720, fmt=RV32(0x32335652, dp=0xbc9a84a8) 09-24 12:35:48.820 32298 1331 D IJKMEDIA: FFP_MSG_VIDEO_RENDERING_START: 09-24 12:35:48.820 32298 1331 D IJKMEDIA: FFP_MSG_AUDIO_DECODED_START: 09-24 12:35:48.820 32298 1331 D IJKMEDIA: FFP_MSG_VIDEO_SIZE_CHANGED: 1280, 720 09-24 12:35:48.820 32298 32298 I tv.danmaku.ijk.media.player.IjkMediaPlayer: Info: MEDIA_INFO_VIDEO_RENDERING_START 09-24 12:36:02.410 32298 1331 D IJKMEDIA: FFP_MSG_BUFFERING_START: 09-24 12:36:02.490 32298 1339 D android.media.AudioTrack: [HSM] AudioTrace pause() uid: 10287, pid: 32298 09-24 12:36:06.580 32298 1331 D IJKMEDIA: FFP_MSG_BUFFERING_END: 09-24 12:36:06.580 32298 1339 D android.media.AudioTrack: [HSM] AudioTrace play() uid: 10287, pid: 32298

其它信息:

Register infos: r0=0x1353fa60 r1=0xdead1234 r2=0x00000000 r3=0x00000003 r4=0x00000004 r5=0x7098ff08 r6=0xbe1237b8 r7=0x00000000 r8=0xbcda9e28 r9=0x0000c800 r10=0x00000010 fp=0xdead1234 ip=0x0000000c sp=0x94270020 lr=0xdead1234 pc=0xb5156786 cpsr=0xa00f0030 System SO infos: 729da000-742a4000 r-xp 01f8b000 b3:18 524293 /data/dalvik-cache/arm/system@framework@boot.oat 9f814000-9f83a000 r-xp 00000000 b3:16 1590 /system/lib/libRSCpuRef.so 9f841000-9f864000 r-xp 00000000 b3:16 1591 /system/lib/libRSDriver.so a0064000-a04a4000 r-xp 00000000 b3:16 3232 /system/vendor/lib/libsc-a3xx.so a1f24000-a27b8000 r-xp 00000000 b3:18 426164 /data/app/com.mc.conference-2/lib/arm/libijkffmpeg.so a3185000-a318c000 r-xp 00000000 b3:16 2484 /system/vendor/lib/egl/eglsubAndroid.so a3194000-a319a000 r-xp 00000000 b3:16 1838 /system/lib/libqservice.so a319e000-a31a4000 r-xp 00000000 b3:16 1831 /system/lib/libqdutils.so a31a7000-a31e1000 r-xp 00000000 b3:18 426162 /data/app/com.mc.conference-2/lib/arm/libijkplayer.so a31e5000-a31e7000 r-xp 00000000 b3:16 1691 /system/lib/libeffects.so a31e9000-a320f000 r-xp 00000000 b3:16 1939 /system/lib/libwilhelm.so a3214000-a3216000 r-xp 00000000 b3:16 1586 /system/lib/libOpenSLES.so a3218000-a324b000 r-xp 00000000 b3:18 426163 /data/app/com.mc.conference-2/lib/arm/libijksdl.so a324e000-a324f000 r-xp 00000000 b3:16 1830 /system/lib/libqdMetaData.so a3251000-a3255000 r-xp 00000000 b3:16 1787 /system/lib/libmemalloc.so a3257000-a325b000 r-xp 00000000 b3:16 1543 /system/lib/hw/gralloc.msm8916.so a3465000-a348c000 r-xp 00000000 b3:18 426165 /data/app/com.mc.conference-2/lib/arm/libBugly.so a3d50000-a42c6000 r-xp 00694000 b3:18 524685 /data/dalvik-cache/arm/data@app@com.mc.conference-2@base.apk@classes.dex ab0cd000-ab1d8000 r-xp 00000000 b3:16 2487 /system/vendor/lib/egl/libGLESv2_adreno.so ab291000-ab2a6000 r-xp 00000000 b3:16 1747 /system/lib/libjavacrypto.so ab2be000-ab2c5000 r-xp 00000000 b3:16 1843 /system/lib/librs_jni.so ab2c7000-ab2cb000 r-xp 00000000 b3:16 1612 /system/lib/libaudioeffect_jni.so ab2cd000-ab2cf000 r-xp 00000000 b3:16 1855 /system/lib/libsoundpool.so ab2d1000-ab2d3000 r-xp 00000000 b3:16 1781 /system/lib/libmedia_jni.huawei.so ab2d6000-ab2ee000 r-xp 00000000 b3:16 1931 /system/lib/libvorbisidec.so ab2f0000-ab2f2000 r-xp 00000000 b3:16 1896 /system/lib/libstagefright_yuv.so ab2f4000-ab311000 r-xp 00000000 b3:16 1873 /system/lib/libstagefright_omx.so ab314000-ab319000 r-xp 00000000 b3:16 1867 /system/lib/libstagefright_avc_common.so ab31b000-ab351000 r-xp 00000000 b3:16 1813 /system/lib/libopus.so ab354000-ab7bd000 r-xp 00000000 b3:16 1601 /system/lib/lib_qcom_ffmpeg.so abd69000-abd75000 r-xp 00000000 b3:16 1866 /system/lib/libstagefright_amrnb_common.so abd77000-abea9000 r-xp 00000000 b3:16 1865 /system/lib/libstagefright.so abeb2000-abec4000 r-xp 00000000 b3:16 1801 /system/lib/libmtp.so abec7000-abecf000 r-xp 00000000 b3:16 1748 /system/lib/libjhead.so abed3000-abef2000 r-xp 00000000 b3:16 1693 /system/lib/libexif.so abeff000-abf37000 r-xp 00000000 b3:16 1782 /system/lib/libmedia_jni.so acbdb000-acbdc000 r-xp 00000000 b3:16 1868 /system/lib/libstagefright_enc_common.so b0464000-b0465000 r-xp 00000000 b3:16 1935 /system/lib/libwebviewchromium_loader.so b0467000-b0468000 r-xp 00000000 b3:16 1769 /system/lib/libjnigraphics.so b046a000-b0470000 r-xp 00000000 b3:16 1650 /system/lib/libcompiler_rt.so b0472000-b047f000 r-xp 00000000 b3:16 1602 /system/lib/libandroid.so b0483000-b04b4000 r-xp 00000000 b3:16 2486 /system/vendor/lib/egl/libGLESv1_CM_adreno.so b04b7000-b04ea000 r-xp 00000000 b3:16 3067 /system/vendor/lib/libgsl.so b04ec000-b04ee000 r-xp 00000000 b3:16 2625 /system/vendor/lib/libadreno_utils.so b04f2000-b0519000 r-xp 00000000 b3:16 2485 /system/vendor/lib/egl/libEGL_adreno.so b051c000-b051d000 r-xp 00000000 b3:16 3224 /system/vendor/lib/libqti-perfd-client.so b051f000-b0521000 r-xp 00000000 b3:16 3084 /system/vendor/lib/libmdmdetect.so b0523000-b0534000 r-xp 00000000 b3:16 3221 /system/vendor/lib/libqmiservices.so b053b000-b053d000 r-xp 00000000 b3:16 3069 /system/vendor/lib/libidl.so b053f000-b0549000 r-xp 00000000 b3:16 3063 /system/vendor/lib/libdsutils.so b054c000-b055d000 r-xp 00000000 b3:16 3054 /system/vendor/lib/libdiag.so b0661000-b0664000 r-xp 00000000 b3:16 3220 /system/vendor/lib/libqmi_encdec.so b0666000-b0670000 r-xp 00000000 b3:16 3217 /system/vendor/lib/libqmi_client_qmux.so b067f000-b0680000 r-xp 00000000 b3:16 3240 /system/vendor/lib/libsmemlog.so b0682000-b0683000 r-xp 00000000 b3:16 1870 /system/lib/libstagefright_http_support.so b1d7c000-b1db0000 r-xp 00000000 b3:16 1746 /system/lib/libjavacore.so b1df0000-b1df1000 r-xp 00000000 b3:16 3218 /system/vendor/lib/libqmi_common_so.so b1df3000-b1dfa000 r-xp 00000000 b3:16 3215 /system/vendor/lib/libqmi_cci.so b1dfc000-b1dfe000 r-xp 00000000 b3:16 1833 /system/lib/libqmi_oem_api.so b1e00000-b1e04000 r-xp 00000000 b3:16 1821 /system/lib/libpowergenie_native3.so b1e06000-b1e07000 r-xp 00000000 b3:16 1549 /system/lib/hw/memtrack.msm8916.so b1e0a000-b1e0d000 r-xp 00000000 b3:16 1665 /system/lib/libdrmbitmap.huawei.so b4f37000-b4f38000 r-xp 00000000 b3:16 1851 /system/lib/libsigchain.so b4f3a000-b4f40000 r-xp 00000000 b3:16 1623 /system/lib/libbacktrace_libc++.so b4f42000-b522d000 r-xp 00000000 b3:16 1609 /system/lib/libart.so b523a000-b523e000 r-xp 00000000 b3:16 3251 /system/vendor/lib/libvendorconn.so b5269000-b526b000 r-xp 00000000 b3:16 1822 /system/lib/libpowermanager.so b526e000-b5278000 r-xp 00000000 b3:16 1649 /system/lib/libcommon_time_client.so b527d000-b52b7000 r-xp 00000000 b3:16 1625 /system/lib/libbcinfo.so b52b9000-b52d9000 r-xp 00000000 b3:16 1624 /system/lib/libbcc.so b52fb000-b5bb9000 r-xp 00000000 b3:16 1574 /system/lib/libLLVM.so b5c00000-b5c02000 r-xp 00000000 b3:16 1925 /system/lib/libunwind-ptrace.so b5c05000-b5c11000 r-xp 00000000 b3:16 1926 /system/lib/libunwind.so b5c59000-b5c5d000 r-xp 00000000 b3:16 1712 /system/lib/libgccdemangle.so b5c60000-b5c70000 r-xp 00000000 b3:16 1816 /system/lib/libpcre.so b5c72000-b5cf9000 r-xp 00000000 b3:16 1635 /system/lib/libc++.so b5cff000-b5d23000 r-xp 00000000 b3:16 1819 /system/lib/libpng.so b5d26000-b5d7c000 r-xp 00000000 b3:16 1710 /system/lib/libft2.so b5d7f000-b5d92000 r-xp 00000000 b3:16 1869 /system/lib/libstagefright_foundation.so b5d96000-b5d9d000 r-xp 00000000 b3:16 1804 /system/lib/libnbaio.so b5d9f000-b5da1000 r-xp 00000000 b3:16 1615 /system/lib/libaudioparameter.so b5da3000-b5da7000 r-xp 00000000 b3:16 1711 /system/lib/libgabi++.so b5da9000-b5dc3000 r-xp 00000000 b3:16 1592 /system/lib/libRScpp.so b5dc6000-b5df9000 r-xp 00000000 b3:16 1589 /system/lib/libRS.so b5dfd000-b5e00000 r-xp 00000000 b3:16 1942 /system/lib/libwpa_client.so b5e02000-b5e03000 r-xp 00000000 b3:16 1812 /system/lib/liboeminfo_oem_api.so b5e05000-b5e0e000 r-xp 00000000 b3:16 1722 /system/lib/libhuawei_secure.so b5e14000-b5e15000 r-xp 00000000 b3:16 1664 /system/lib/libdmd_report.so b5e17000-b5e18000 r-xp 00000000 b3:16 1904 /system/lib/libsync.so b5e1a000-b5e1e000 r-xp 00000000 b3:16 1859 /system/lib/libspeexresampler.so b5e20000-b5e2d000 r-xp 00000000 b3:16 1729 /system/lib/libhwgl.so b5e2f000-b5e3d000 r-xp 00000000 b3:16 1726 /system/lib/libhwaps.so b5e3f000-b5ea8000 r-xp 00000000 b3:16 1562 /system/lib/libGLES_trace.so b5eaa000-b5eb0000 r-xp 00000000 b3:16 1622 /system/lib/libbacktrace.so b5eb2000-b5ec9000 r-xp 00000000 b3:16 1944 /system/lib/libz.so b5ecb000-b5ecd000 r-xp 00000000 b3:16 1927 /system/lib/libusbhost.so b5ed0000-b5eda000 r-xp 00000000 b3:16 1924 /system/lib/libui.so b5edc000-b5f0f000 r-xp 00000000 b3:16 1899 /system/lib/libstlport.so b5f12000-b5f4b000 r-xp 00000000 b3:16 1863 /system/lib/libssl.so b5f51000-b5fae000 r-xp 00000000 b3:16 1860 /system/lib/libsqlite.so b5fb2000-b5fbc000 r-xp 00000000 b3:16 1856 /system/lib/libsoundtrigger.so b5fc0000-b600e000 r-xp 00000000 b3:16 1854 /system/lib/libsonivox.so b6016000-b6217000 r-xp 00000000 b3:16 1852 /system/lib/libskia.so b6231000-b6232000 r-xp 00000000 b3:16 1849 /system/lib/libservices.huawei.so b6235000-b6241000 r-xp 00000000 b3:16 1847 /system/lib/libselinux.so b6243000-b6245000 r-xp 00000000 b3:16 1825 /system/lib/libprocessgroup.so b6247000-b6681000 r-xp 00000000 b3:16 1817 /system/lib/libpdfium.so b6693000-b6698000 r-xp 00000000 b3:16 1807 /system/lib/libnetutils.so b669b000-b669d000 r-xp 00000000 b3:16 1805 /system/lib/libnetd_client.so b669f000-b66a4000 r-xp 00000000 b3:16 1803 /system/lib/libnativehelper.so b66a6000-b66a8000 r-xp 00000000 b3:16 1802 /system/lib/libnativebridge.so b66aa000-b66b3000 r-xp 00000000 b3:16 1789 /system/lib/libminikin.so b66b6000-b66b7000 r-xp 00000000 b3:16 1788 /system/lib/libmemtrack.so b66ba000-b6739000 r-xp 00000000 b3:16 1780 /system/lib/libmedia.so b6753000-b6782000 r-xp 00000000 b3:16 1770 /system/lib/libjpeg.so b6785000-b67bb000 r-xp 00000000 b3:16 1741 /system/lib/libinputflinger.so b67bf000-b67d5000 r-xp 00000000 b3:16 1740 /system/lib/libinput.so b67d9000-b67e3000 r-xp 00000000 b3:16 1738 /system/lib/libimg_utils.so b67e6000-b68da000 r-xp 00000000 b3:16 1737 /system/lib/libicuuc.so b68e9000-b6a2a000 r-xp 00000000 b3:16 1736 /system/lib/libicui18n.so b6a34000-b6a7b000 r-xp 00000000 b3:16 1735 /system/lib/libhwui.so b6a7f000-b6ac4000 r-xp 00000000 b3:16 1717 /system/lib/libharfbuzz_ng.so b6ac7000-b6ace000 r-xp 00000000 b3:16 1716 /system/lib/libhardware_legacy.so b6ad1000-b6ad2000 r-xp 00000000 b3:16 1715 /system/lib/libhardware.so b6ad4000-b6b13000 r-xp 00000000 b3:16 1714 /system/lib/libgui.so b6b20000-b6b34000 r-xp 00000000 b3:16 1694 /system/lib/libexpat.so b6b37000-b6b4d000 r-xp 00000000 b3:16 1667 /system/lib/libdrmframework.so b6b52000-b6c35000 r-xp 00000000 b3:16 1654 /system/lib/libcrypto.so b6c4a000-b6c50000 r-xp 00000000 b3:16 1639 /system/lib/libcamera_metadata.so b6c52000-b6c87000 r-xp 00000000 b3:16 1638 /system/lib/libcamera_client.so b6c94000-b6c98000 r-xp 00000000 b3:16 1621 /system/lib/libaudioutils.so b6c9a000-b6cbc000 r-xp 00000000 b3:16 1605 /system/lib/libandroidfw.so b6cbf000-b6ccf000 r-xp 00000000 b3:16 1564 /system/lib/libGLESv2.so b6cd2000-b6cdb000 r-xp 00000000 b3:16 1563 /system/lib/libGLESv1_CM.so b6cdd000-b6cdf000 r-xp 00000000 b3:16 1559 /system/lib/libETC1.so b6ce2000-b6d3f000 r-xp 00000000 b3:16 1558 /system/lib/libEGL.so b6d4d000-b6d61000 r-xp 00000000 b3:16 1928 /system/lib/libutils.so b6d63000-b6d65000 r-xp 00000000 b3:16 1898 /system/lib/libstdc++.so b6d67000-b6d7d000 r-xp 00000000 b3:16 1778 /system/lib/libm.so b6d7f000-b6d84000 r-xp 00000000 b3:16 1776 /system/lib/liblog.so b6d86000-b6d92000 r-xp 00000000 b3:16 1657 /system/lib/libcutils.so b6d94000-b6de6000 r-xp 00000000 b3:16 1636 /system/lib/libc.so b6df4000-b6e19000 r-xp 00000000 b3:16 1628 /system/lib/libbinder.so b6e21000-b6ef1000 r-xp 00000000 b3:16 1603 /system/lib/libandroid_runtime.so b6f07000-b6f08000 r-xp 00000000 00:00 0 [sigpage] b6f08000-b6f15000 r-xp 00000000 b3:16 450 /system/bin/linker b6f18000-b6f1b000 r-xp 00000000 b3:16 328 /system/bin/app_process32 ffff0000-ffff1000 r-xp 00000000 00:00 0 [vectors]

bugly提供的解决方案:

SIG 是信号名的通用前缀, SEGV 是 segmentation violation 的缩写

在 POSIX 兼容的平台上,SIGSEGV 是当一个进程执行了一个无效的内存引用,或发生段错误时发送给它的信号。SIGSEGV 的符号常量在头文件 signal.h 中定义。因为在不同平台上,信号数字可能变化,因此符号信号名被使用。通常,它是信号11。

对于不正确的内存处理,如当程序企图访问 CPU 无法定址的内存区块时,计算机程序可能抛出 SIGSEGV。操作系统可能使用信号栈向一个处于自然状态的应用程序通告错误,由此,开发者可以使用它来调试程序或处理错误。 在一个程序接收到 SIGSEGV 时的默认动作是异常终止。这个动作也许会结束进程,但是可能生成一个核心文件以帮助调试,或者执行一些其他特定于某些平台的动作。 SIGSEGV可以被捕获。也就是说,应用程序可以请求它们想要的动作,以替代默认发生的动作。这样的动作可以是忽略它、调用一个函数,或恢复默认的动作。在一些情形下,忽略 SIGSEGV 导致未定义行为。 一个应用程序可能处理SIGSEGV的例子是调试器,它可能检查信号栈并通知开发者目前所发生的,以及程序终止的位置。

SIGSEGV通常由操作系统生成,但是有适当权限的用户可以在需要时使用kill系统调用或kill命令(一个用户级程序,或者一个shell内建命令)来向一个进程发送信号。

闪退场景一:recorder deleteRecording 之前 先判断文件是否存在,否则会造成过度释放,解决方法:

if ([[NSFileManager defaultManager] fileExistsAtPath:self.recorder.url.path]) { if (![self.recorder deleteRecording]) NSLog(@"Failed to delete %@", self.recorder.url); }

闪退场景二: delegate = nil 。 将XXViewContrller设置为delegate时,当页面发生跳转时,XXViewController的对象会被释放,这是代码走到[_delegate callbackMethod],便出现crash。解决方法有二:1.将@property (nonatomic ,assign) id delegate; 中 assign关键字改为weak。 2.在XXViewController的delloc方法中添加:xxx.delegate = nil;