Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

android 在播放过程中崩溃 #5024

Open
pcarm opened this issue Apr 14, 2020 · 1 comment
Open

android 在播放过程中崩溃 #5024

pcarm opened this issue Apr 14, 2020 · 1 comment

Comments

@pcarm
Copy link

pcarm commented Apr 14, 2020

822 ? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
823 ? A/DEBUG: Build fingerprint: 'HONOR/AGS2-W09HN/HWAGS2:9/HUAWEIAGS2-W09HN/9.1.0.131C00:user/release-keys'
823 ? A/DEBUG: Revision: '0'
823 ? A/DEBUG: ABI: 'arm64'
826 ? A/DEBUG: Happend: 'Tue Apr 14 09:37:35 2020
'
826 ? A/DEBUG: SYSVMTYPE: Art
APPVMTYPE: Art
826 ? A/DEBUG: pid: 27380, tid: 27615, name: Thread-15 >>> com.qdfsdk.demo <<<
826 ? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
827 ? A/DEBUG: Cause: null pointer dereference
827 ? A/DEBUG: x0 0000000000000000 x1 0000000000000000 x2 0000000000006e71 x3 0000000000000000
827 ? A/DEBUG: x4 0000000000000000 x5 0000000000000000 x6 0000000000000000 x7 0000007cdc5738d0
827 ? A/DEBUG: x8 08e7c5d24bc3f39a x9 08e7c5d24bc3f39a x10 0000000000000000 x11 0000000000000000
827 ? A/DEBUG: x12 0000000000000000 x13 0000007cdc5737b0 x14 0000000000000000 x15 0000000000000002
827 ? A/DEBUG: x16 0000007cdf3b8f78 x17 0000007d866a0ba0 x18 0000000000000001 x19 0000000000400000
827 ? A/DEBUG: x20 0000007ce260e000 x21 0000000000000000 x22 0000007ce260fba8 x23 0000007cfaedd800
827 ? A/DEBUG: x24 0000000000000000 x25 0000007cfaee3510 x26 0000007cfae75ca0 x27 0000007ce1c8bfd0
827 ? A/DEBUG: x28 0000007ce1c8eb90 x29 0000007ce4a44ef0
827 ? A/DEBUG: sp 0000007ce4a44d70 lr 0000007ce1c5a0a4 pc 0000007ce1c5a0b4
934 ? A/DEBUG: backtrace:
934 ? A/DEBUG: #00 pc 00000000000180b4 /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/lib/arm64/libijkplayer.so
934 ? A/DEBUG: #1 pc 00000000000199b8 /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/lib/arm64/libijkplayer.so
934 ? A/DEBUG: #2 pc 000000000001d624 /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/lib/arm64/libijkplayer.so (ffp_wait_stop_l+28)
934 ? A/DEBUG: #3 pc 0000000000025430 /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/lib/arm64/libijkplayer.so (ijkmp_shutdown_l+56)
934 ? A/DEBUG: #4 pc 000000000002a868 /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/lib/arm64/libijkplayer.so
934 ? A/DEBUG: #5 pc 0000000000588fe0 /system/lib64/libart.so (art_quick_generic_jni_trampoline+144)
934 ? A/DEBUG: #6 pc 000000000057ff88 /system/lib64/libart.so (art_quick_invoke_stub+584)
934 ? A/DEBUG: #7 pc 00000000000d8608 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
934 ? A/DEBUG: #8 pc 000000000028cec8 /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
934 ? A/DEBUG: #9 pc 0000000000286ed0 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
934 ? A/DEBUG: #10 pc 00000000005487c0 /system/lib64/libart.so (MterpInvokeDirect+296)
934 ? A/DEBUG: #11 pc 0000000000572614 /system/lib64/libart.so (ExecuteMterpImpl+14484)
934 ? A/DEBUG: #12 pc 00000000003cd7e0 /dev/ashmem/dalvik-classes.dex extracted in memory from /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/base.apk (deleted) (tv.danmaku.ijk.media.player.IjkMediaPlayer.reset+8)
934 ? A/DEBUG: #13 pc 0000000000260bd4 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2850692617+488)
934 ? A/DEBUG: #14 pc 00000000002666c8 /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
934 ? A/DEBUG: #15 pc 0000000000286eb4 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
934 ? A/DEBUG: #16 pc 000000000054747c /system/lib64/libart.so (MterpInvokeVirtual+588)
934 ? A/DEBUG: #17 pc 0000000000572514 /system/lib64/libart.so (ExecuteMterpImpl+14228)
934 ? A/DEBUG: #18 pc 00000000000148a4 /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/base.apk!classes3.dex (deleted) (com.qudoufeng.vehiclesdk.component.PlayerWrapper.reset+40)
934 ? A/DEBUG: #19 pc 0000000000260bd4 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2850692617+488)
934 ? A/DEBUG: #20 pc 00000000002666c8 /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
934 ? A/DEBUG: #21 pc 0000000000286eb4 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
934 ? A/DEBUG: #22 pc 000000000054747c /system/lib64/libart.so (MterpInvokeVirtual+588)
934 ? A/DEBUG: #23 pc 0000000000572514 /system/lib64/libart.so (ExecuteMterpImpl+14228)
934 ? A/DEBUG: #24 pc 000000000001f922 /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/base.apk!classes3.dex (deleted) (com.qudoufeng.vehiclesdk.service.RandomAudioService.playerVoice+78)
934 ? A/DEBUG: #25 pc 0000000000260bd4 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2850692617+488)
934 ? A/DEBUG: #26 pc 00000000002666c8 /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
934 ? A/DEBUG: #27 pc 0000000000286eb4 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
934 ? A/DEBUG: #28 pc 00000000005487c0 /system/lib64/libart.so (MterpInvokeDirect+296)
934 ? A/DEBUG: #29 pc 0000000000572614 /system/lib64/libart.so (ExecuteMterpImpl+14484)
934 ? A/DEBUG: #30 pc 000000000001f428 /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/base.apk!classes3.dex (deleted) (com.qudoufeng.vehiclesdk.service.RandomAudioService.__playDefault+36)
934 ? A/DEBUG: #31 pc 0000000000260bd4 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2850692617+488)
934 ? A/DEBUG: #32 pc 00000000002666c8 /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
934 ? A/DEBUG: #33 pc 0000000000286eb4 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
934 ? A/DEBUG: #34 pc 000000000054747c /system/lib64/libart.so (MterpInvokeVirtual+588)
934 ? A/DEBUG: #35 pc 0000000000572514 /system/lib64/libart.so (ExecuteMterpImpl+14228)
934 ? A/DEBUG: #36 pc 000000000001f716 /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/base.apk!classes3.dex (deleted) (com.qudoufeng.vehiclesdk.service.RandomAudioService.justPlayAudio+42)
934 ? A/DEBUG: #37 pc 0000000000260bd4 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2850692617+488)
935 ? A/DEBUG: #38 pc 00000000002666c8 /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
935 ? A/DEBUG: #39 pc 0000000000286eb4 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
935 ? A/DEBUG: #40 pc 000000000054747c /system/lib64/libart.so (MterpInvokeVirtual+588)
935 ? A/DEBUG: #41 pc 0000000000572514 /system/lib64/libart.so (ExecuteMterpImpl+14228)
935 ? A/DEBUG: #42 pc 0000000000011cec /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/base.apk!classes3.dex (deleted) (com.qudoufeng.vehiclesdk.component.GuideChecker.shouldPlayAudioItem+436)
935 ? A/DEBUG: #43 pc 0000000000260bd4 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2850692617+488)
935 ? A/DEBUG: #44 pc 0000000000533414 /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
935 ? A/DEBUG: #45 pc 00000000005890fc /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
935 ? A/DEBUG: #46 pc 00000000000a15a4 /dev/ashmem/dalvik-jit-code-cache (deleted) (com.qudoufeng.vehiclesdk.component.GuideChecker.checkTripAudio+2100)
935 ? A/DEBUG: #47 pc 00000000000ba120 /dev/ashmem/dalvik-jit-code-cache (deleted) (com.qudoufeng.vehiclesdk.component.GuideChecker.updateCurrentLocation+176)
935 ? A/DEBUG: #48 pc 000000000057ff88 /system/lib64/libart.so (art_quick_invoke_stub+584)
935 ? A/DEBUG: #49 pc 00000000000d8608 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
935 ? A/DEBUG: #50 pc 000000000028cec8 /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
935 ? A/DEBUG: #51 pc 0000000000286ed0 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
935 ? A/DEBUG: #52 pc 000000000054747c /system/lib64/libart.so (MterpInvokeVirtual+588)
935 ? A/DEBUG: #53 pc 0000000000572514 /system/lib64/libart.so (ExecuteMterpImpl+14228)
935 ? A/DEBUG: #54 pc 000000000001df8c /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/base.apk!classes3.dex (deleted) (com.qudoufeng.vehiclesdk.service.DFTourService.dealLocation+8)
935 ? A/DEBUG: #55 pc 0000000000260bd4 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2850692617+488)
935 ? A/DEBUG: #56 pc 0000000000533414 /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
935 ? A/DEBUG: #57 pc 00000000005890fc /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
935 ? A/DEBUG: #58 pc 00000000000d3334 /dev/ashmem/dalvik-jit-code-cache (deleted) (com.qudoufeng.vehiclesdk.service.DFTourService.onEvent+100)
935 ? A/DEBUG: #59 pc 000000000057ff88 /system/lib64/libart.so (art_quick_invoke_stub+584)
935 ? A/DEBUG: #60 pc 00000000000d8608 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
935 ? A/DEBUG: #61 pc 000000000047ac6c /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
935 ? A/DEBUG: #62 pc 000000000047c6c0 /system/lib64/libart.so (art::InvokeMethod(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jobject*, _jobject*, unsigned long)+1440)
935 ? A/DEBUG: #63 pc 000000000040be28 /system/lib64/libart.so (art::Method_invoke(_JNIEnv*, _jobject*, _jobject*, _jobjectArray*)+52)
935 ? A/DEBUG: #64 pc 00000000001456d4 /system/framework/arm64/boot.oat (offset 0x13b000) (java.lang.Class.getDeclaredMethodInternal [DEDUPED]+180)
935 ? A/DEBUG: #65 pc 00000000000c7a78 /dev/ashmem/dalvik-jit-code-cache (deleted) (org.greenrobot.eventbus.EventBus.invokeSubscriber+152)
935 ? A/DEBUG: #66 pc 00000000000bec60 /dev/ashmem/dalvik-jit-code-cache (deleted) (org.greenrobot.eventbus.EventBus.postToSubscription+672)
935 ? A/DEBUG: #67 pc 00000000000afa7c /dev/ashmem/dalvik-jit-code-cache (deleted) (org.greenrobot.eventbus.EventBus.postSingleEventForEventType+444)
935 ? A/DEBUG: #68 pc 00000000000a8760 /dev/ashmem/dalvik-jit-code-cache (deleted) (org.greenrobot.eventbus.EventBus.postSingleEvent+272)
935 ? A/DEBUG: #69 pc 00000000000afccc /dev/ashmem/dalvik-jit-code-cache (deleted) (org.greenrobot.eventbus.EventBus.post+300)
935 ? A/DEBUG: #70 pc 000000000057ff88 /system/lib64/libart.so (art_quick_invoke_stub+584)
935 ? A/DEBUG: #71 pc 00000000000d8608 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
935 ? A/DEBUG: #72 pc 000000000028cec8 /system/lib64/libart.so (art::interpreter::ArtInterpreterToCompiledCodeBridge(art::Thread*, art::ArtMethod*, art::ShadowFrame*, unsigned short, art::JValue*)+344)
935 ? A/DEBUG: #73 pc 0000000000286ed0 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+968)
935 ? A/DEBUG: #74 pc 000000000054747c /system/lib64/libart.so (MterpInvokeVirtual+588)
935 ? A/DEBUG: #75 pc 0000000000572514 /system/lib64/libart.so (ExecuteMterpImpl+14228)
935 ? A/DEBUG: #76 pc 000000000001d678 /dev/ashmem/dalvik-classes3.dex extracted in memory from /data/app/com.qdfsdk.demo-41-VD_aFEy-Y9OyoScN0mw==/base.apk!classes3.dex (deleted) (com.qudoufeng.vehiclesdk.service.DFTourService$7.run+280)
935 ? A/DEBUG: #77 pc 0000000000260bd4 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2850692617+488)
935 ? A/DEBUG: #78 pc 00000000002666c8 /system/lib64/libart.so (art::interpreter::ArtInterpreterToInterpreterBridge(art::Thread*, art::CodeItemDataAccessor const&, art::ShadowFrame*, art::JValue*)+216)
935 ? A/DEBUG: #79 pc 0000000000286eb4 /system/lib64/libart.so (bool art::interpreter::DoCall<false, false>(art::ArtMethod*, art::Thread*, art::ShadowFrame&, art::Instruction const*, unsigned short, art::JValue*)+940)
935 ? A/DEBUG: #80 pc 0000000000548238 /system/lib64/libart.so (MterpInvokeInterface+944)
936 ? A/DEBUG: #81 pc 0000000000572714 /system/lib64/libart.so (ExecuteMterpImpl+14740)
936 ? A/DEBUG: #82 pc 00000000000cd1ce /system/framework/boot.vdex (java.lang.Thread.run+12)
936 ? A/DEBUG: #83 pc 0000000000260bd4 /system/lib64/libart.so (_ZN3art11interpreterL7ExecuteEPNS_6ThreadERKNS_20CodeItemDataAccessorERNS_11ShadowFrameENS_6JValueEb.llvm.2850692617+488)
936 ? A/DEBUG: #84 pc 0000000000533414 /system/lib64/libart.so (artQuickToInterpreterBridge+1020)
936 ? A/DEBUG: #85 pc 00000000005890fc /system/lib64/libart.so (art_quick_to_interpreter_bridge+92)
936 ? A/DEBUG: #86 pc 000000000057ff88 /system/lib64/libart.so (art_quick_invoke_stub+584)
936 ? A/DEBUG: #87 pc 00000000000d8608 /system/lib64/libart.so (art::ArtMethod::Invoke(art::Thread*, unsigned int*, unsigned int, art::JValue*, char const*)+200)
936 ? A/DEBUG: #88 pc 000000000047ac6c /system/lib64/libart.so (art::(anonymous namespace)::InvokeWithArgArray(art::ScopedObjectAccessAlreadyRunnable const&, art::ArtMethod*, art::(anonymous namespace)::ArgArray*, art::JValue*, char const*)+104)
936 ? A/DEBUG: #89 pc 000000000047bd28 /system/lib64/libart.so (art::InvokeVirtualOrInterfaceWithJValues(art::ScopedObjectAccessAlreadyRunnable const&, _jobject*, _jmethodID*, jvalue*)+424)
936 ? A/DEBUG: #90 pc 00000000004a7abc /system/lib64/libart.so (art::Thread::CreateCallback(void*)+1120)
936 ? A/DEBUG: #91 pc 0000000000083588 /system/lib64/libc.so (__pthread_start(void*)+36)
936 ? A/DEBUG: #92 pc 00000000000241dc /system/lib64/libc.so (__start_thread+68)

正常播放一个列表,可能会有网络、本地数据混合,是播放过程中不定时会抛出null pointer dereference 异常。

@alaiyeshi
Copy link

alaiyeshi commented Jul 15, 2020

从你崩溃的地址来看,大致应该是因为SDL_WaitThread里发生了崩溃
SDL_WaitThread里调用pthread_join的地方需要做保护,安卓26版本也就是安卓8以后,安卓ASOP代码里对pthread_join的处理有了新的变动,如果已经join过了,再次join会崩溃,修改办法如下
void SDL_WaitThread(SDL_Thread *thread, int *status)
{
assert(thread);
if (!thread)
return;
if(thread->id<=0){
return ;
}
pthread_join(thread->id, NULL);
thread->id = 0 ;

if (status)
    *status = thread->retval;

}

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants