我们的应用程序是一个VR android应用程序,可交互播放360视频并使用Unity开发。当我的应用播放360度视频时,以下崩溃随时可能会随机发生:
Build fingerprint:
'Xiaomi/natrium/natrium:7.0/NRD90M/V10.1.1.0.NBGMIFI:user/release-keys'
09-30 15:57:10.422 20881 20881 F DEBUG : Revision: '0'
09-30 15:57:10.423 20881 20881 F DEBUG : ABI: 'arm'
09-30 15:57:10.424 20881 20881 F DEBUG : pid: 14975, tid: 15036, name: Thread-17 >>> com.Fluidcast.VRCirclesProdOffline <<<
09-30 15:57:10.425 20881 20881 F DEBUG : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xbc9fea14
09-30 15:57:10.425 20881 20881 F DEBUG : r0 bc9fea00 r1 00000000 r2 00000001 r3 00000004
09-30 15:57:10.425 20881 20881 F DEBUG : r4 babfec00 r5 00003f0a r6 00003f0b r7 00000001
09-30 15:57:10.426 20881 20881 F DEBUG : r8 cac64780 r9 00000002 sl 00000001 fp 00000001
09-30 15:57:10.426 20881 20881 F DEBUG : ip 00003f0a sp ca9ff058 lr 00003f0a pc dd4e6498 cpsr 600f0030
09-30 15:57:10.475 20881 20881 F DEBUG :
09-30 15:57:10.475 20881 20881 F DEBUG : backtrace:
09-30 15:57:10.476 20881 20881 F DEBUG : #00 pc 0023f498 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZNK11A5xPipeline18WriteGfxShaderRegsEP10A5xContext13EsxCmdBufTypeP14A5xStateBuffer+327)
09-30 15:57:10.478 20881 20881 F DEBUG : #01 pc 0023f627 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN11A5xPipeline16WriteGfxPipelineEP10A5xContext13EsxCmdBufTypeP14A5xStateBuffer+12)
09-30 15:57:10.478 20881 20881 F DEBUG : #02 pc 00252811 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10A5xContext13ValidateStateEPK17EsxDrawDescriptor+680)
09-30 15:57:10.479 20881 20881 F DEBUG : #03 pc 00252553 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10A5xContext18HwValidateGfxStateEPK17EsxDrawDescriptor+4)
09-30 15:57:10.479 20881 20881 F DEBUG : #04 pc 000cc8c1 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10EsxContext16ValidateGfxStateEPK17EsxDrawDescriptor+2300)
09-30 15:57:10.479 20881 20881 F DEBUG : #05 pc 000c3719 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10EsxContext21DrawElementsInstancedE11EsxPrimTypej10EsxPixTypePKvji+828)
09-30 15:57:10.479 20881 20881 F DEBUG : #06 pc 000e6b69 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN21EsxGlApiParamValidate14GlDrawElementsEP11EsxDispatchjijPKv+192)
09-30 15:57:10.481 20881 20881 F DEBUG : #07 pc 00095123 /system/vendor/lib/egl/libGLESv2_adreno.so (glDrawElements+46)
09-30 15:57:10.481 20881 20881 F DEBUG : #08 pc 005bce84 /data/app/com.Fluidcast.VRCirclesProdOffline-1/lib/arm/libunity.so
09-30 15:57:10.481 20881 20881 F DEBUG : #09 pc 005bd310 /data/app/com.Fluidcast.VRCirclesProdOffline-1/lib/arm/libunity.so
09-30 15:57:10.481 20881 20881 F DEBUG : #10 pc 002b26fc /data/app/com.Fluidcast.VRCirclesProdOffline-1/lib/arm/libunity.so
09-30 15:57:10.482 20881 20881 F DEBUG : #11 pc 002b1838 /data/app/com.Fluidcast.VRCirclesProdOffline-1/lib/arm/libunity.so
09-30 15:57:10.482 20881 20881 F DEBUG : #12 pc 005a412c /data/app/com.Fluidcast.VRCirclesProdOffline-1/lib/arm/libunity.so
09-30 15:57:10.482 20881 20881 F DEBUG : #13 pc 005a6a68 /data/app/com.Fluidcast.VRCirclesProdOffline-1/lib/arm/libunity.so
09-30 15:57:10.483 20881 20881 F DEBUG : #14 pc 005a01e0 /data/app/com.Fluidcast.VRCirclesProdOffline-1/lib/arm/libunity.so
09-30 15:57:10.484 20881 20881 F DEBUG : #15 pc 003fca44 /data/app/com.Fluidcast.VRCirclesProdOffline-1/lib/arm/libunity.so
09-30 15:57:10.485 20881 20881 F DEBUG : #16 pc 00046d93 /system/lib/libc.so (_ZL15__pthread_startPv+22)
09-30 15:57:10.486 20881 20881 F DEBUG : #17 pc 00019afd /system/lib/libc.so (__start_thread+6)
最初,我认为这可能是由于我们的应用程序存在一些内存泄漏问题(自从播放视频时,场景中还可能同时播放许多图像,动画和声音以进行交互使用)。但是,在添加了一些减少内存使用的措施(在每个视频之间添加GC.Collect()
并检查adb logcat中的内存后,问题仍然出现,并且logcat显示内存使用情况还不错(大约10-30MB的使用情况)平均)。问题是,崩溃的根源是什么?内存和CPU使用率相关吗?还是其他原因?
编辑: 在尝试@Mick的方法后,我得到了这个崩溃转储:
********** Crash dump: **********
Build fingerprint: 'Xiaomi/natrium/natrium:7.0/NRD90M/V10.1.1.0.NBGMIFI:user/release-keys'
pid: 8265, tid: 8300, name: RenderThread >>> com.ooovr.offline <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xbef0f264
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #00 pc 0026aeb2 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10A5xContext25HwPatchForDirectRenderingEP15EsxRenderBucketP13EsxLinkedListj+1873)
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #01 pc 000bd447 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10EsxContext25ProcessAndSubmitRenderingE14EsxFlushReason+3362)
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #02 pc 0016e53f /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN9EsxCmdMgr5FlushE14EsxFlushReason+606)
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #03 pc 00187d6d /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN17EsxChunkedMemPool29GetChunkedMemPoolSpaceAlignedEjjPPjPy+78)
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #04 pc 0012c3cd /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN20EsxVertexArrayObject18UpdateInternalVbosEPK17EsxDrawDescriptorjPK16EsxAttributeDesc+1032)
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #05 pc 0024ad01 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN20A5xVertexArrayObject11CalcVfdRegsEPK17EsxDrawDescriptorP10A5xVfdRegsi+96)
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #06 pc 00252885 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10A5xContext13ValidateStateEPK17EsxDrawDescriptor+796)
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #07 pc 00252553 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10A5xContext18HwValidateGfxStateEPK17EsxDrawDescriptor+4)
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #08 pc 000cc8c1 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10EsxContext16ValidateGfxStateEPK17EsxDrawDescriptor+2300)
Stack frame 10-14 12:36:25.824 8567 8567 F DEBUG : #09 pc 000ba449 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10EsxContext19DrawArraysInstancedE11EsxPrimTypeijj+344)
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #10 pc 000e617f /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN21EsxGlApiParamValidate12GlDrawArraysEP11EsxDispatchjii+102)
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #11 pc 00022451 /system/lib/libhwui.so
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #12 pc 00060881 /system/lib/libhwui.so
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #13 pc 0005ecd1 /system/lib/libhwui.so
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #14 pc 0005e209 /system/lib/libhwui.so
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #15 pc 0005ede5 /system/lib/libhwui.so
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #16 pc 00064657 /system/lib/libhwui.so
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #17 pc 00023c09 /system/lib/libhwui.so
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #18 pc 00023801 /system/lib/libhwui.so
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #19 pc 000252c7 /system/lib/libhwui.so
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #20 pc 000286f9 /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+80)
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #21 pc 0000e575 /system/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+140)
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #22 pc 000647b5 /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+80)
Stack frame 10-14 12:36:25.825 8567 8567 F DEBUG : #23 pc 00046d93 /system/lib/libc.so (_ZL15__pthread_startPv+22)
Stack frame 10-14 12:36:25.826 8567 8567 F DEBUG : #24 pc 00019afd /system/lib/libc.so (__start_thread+6)
Crash dump is completed
********** Crash dump: **********
Build fingerprint: 'Xiaomi/natrium/natrium:7.0/NRD90M/V10.1.1.0.NBGMIFI:user/release-keys'
pid: 8647, tid: 8685, name: Thread-19 >>> com.ooovr.offline <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xe5fe94
Stack frame 10-14 12:37:54.235 8920 8920 F DEBUG : #00 pc 0023f498 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZNK11A5xPipeline18WriteGfxShaderRegsEP10A5xContext13EsxCmdBufTypeP14A5xStateBuffer+327)
Stack frame 10-14 12:37:54.235 8920 8920 F DEBUG : #01 pc 0023f627 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN11A5xPipeline16WriteGfxPipelineEP10A5xContext13EsxCmdBufTypeP14A5xStateBuffer+12)
Stack frame 10-14 12:37:54.235 8920 8920 F DEBUG : #02 pc 00252811 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10A5xContext13ValidateStateEPK17EsxDrawDescriptor+680)
Stack frame 10-14 12:37:54.235 8920 8920 F DEBUG : #03 pc 00252553 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10A5xContext18HwValidateGfxStateEPK17EsxDrawDescriptor+4)
Stack frame 10-14 12:37:54.236 8920 8920 F DEBUG : #04 pc 000cc8c1 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10EsxContext16ValidateGfxStateEPK17EsxDrawDescriptor+2300)
Stack frame 10-14 12:37:54.236 8920 8920 F DEBUG : #05 pc 000c3719 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN10EsxContext21DrawElementsInstancedE11EsxPrimTypej10EsxPixTypePKvji+828)
Stack frame 10-14 12:37:54.236 8920 8920 F DEBUG : #06 pc 000e6b69 /system/vendor/lib/egl/libGLESv2_adreno.so (_ZN21EsxGlApiParamValidate14GlDrawElementsEP11EsxDispatchjijPKv+192)
Stack frame 10-14 12:37:54.236 8920 8920 F DEBUG : #07 pc 00095123 /system/vendor/lib/egl/libGLESv2_adreno.so (glDrawElements+46)
Stack frame 10-14 12:37:54.236 8920 8920 F DEBUG : #08 pc 005ab714 /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine $d.798 at ??:?
Stack frame 10-14 12:37:54.236 8920 8920 F DEBUG : #09 pc 005ab430 /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine SuiteFloatConversionTestskUnitTestCategory::TestFloatConversion_Repeat::RunImpl() const at ??:?
Stack frame 10-14 12:37:54.236 8920 8920 F DEBUG : #10 pc 00627758 /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine $d.945 at ??:?
Stack frame 10-14 12:37:54.236 8920 8920 F DEBUG : #11 pc 0062d9e4 /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine BuiltinResourceManager::InitializeResources() at ??:?
Stack frame 10-14 12:37:54.236 8920 8920 F DEBUG : #12 pc 005dba6c /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine $a.1553 at ??:?
Stack frame 10-14 12:37:54.237 8920 8920 F DEBUG : #13 pc 005dba14 /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine $a.1553 at ??:?
Stack frame 10-14 12:37:54.237 8920 8920 F DEBUG : #14 pc 005b68dc /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine $a.1243 at ??:?
Stack frame 10-14 12:37:54.237 8920 8920 F DEBUG : #15 pc 005a623c /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine SuiteFloatConversionTestskUnitTestCategory::TestFloatConversionTests_FloatToHalf::RunImpl() const at ??:?
Stack frame 10-14 12:37:54.237 8920 8920 F DEBUG : #16 pc 005a6a68 /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine SuiteFloatConversionTestskUnitTestCategory::TestFloatToHalf(Testing::TestCaseEmitter<unsigned short, unsigned int, void, void>&) at ??:?
Stack frame 10-14 12:37:54.237 8920 8920 F DEBUG : #17 pc 005a01e0 /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine void CombineCurve<Vector3f>(AnimationCurveTpl<float> const&, int, AnimationCurveTpl<Vector3f>&, Vector3f const&) at ??:?
Stack frame 10-14 12:37:54.237 8920 8920 F DEBUG : #18 pc 003fca44 /data/app/com.ooovr.offline-2/lib/arm/libunity.so: Routine SuiteIntersectionTestskUnitTestCategory::TestIntersectTriTri_CorrectlyDetectsCoplanarTriangles::CreateAttributes(std::vector<UnitTest::TestAttribute const*, std::allocator<UnitTest::TestAttribute const*> >&) const at ??:?
Stack frame 10-14 12:37:54.237 8920 8920 F DEBUG : #19 pc 00046d93 /system/lib/libc.so (_ZL15__pthread_startPv+22)
Stack frame 10-14 12:37:54.237 8920 8920 F DEBUG : #20 pc 00019afd /system/lib/libc.so (__start_thread+6)
Stack frame 10-14 12:39:41.962 8491 8491 D SPHINX_CORE_DUMP: #00 pc 0000000000011b44 /system/bin/seempd
Stack frame 10-14 12:39:41.962 8491 8491 D SPHINX_CORE_DUMP: #01 pc 000000000000a7f8 /system/bin/seempd
Stack frame 10-14 12:39:41.962 8491 8491 D SPHINX_CORE_DUMP: #02 pc 000000000001a794 /system/lib64/libc.so (__libc_init+88)
Stack frame 10-14 12:39:41.962 8491 8491 D SPHINX_CORE_DUMP: #03 pc 00000000000090d8 /system/bin/seempd
Stack frame 10-14 12:48:14.039 9135 9135 D SPHINX_CORE_DUMP: #00 pc 0000000000011b44 /system/bin/seempd
Stack frame 10-14 12:48:14.040 9135 9135 D SPHINX_CORE_DUMP: #01 pc 000000000000a7f8 /system/bin/seempd
Stack frame 10-14 12:48:14.040 9135 9135 D SPHINX_CORE_DUMP: #02 pc 000000000001a794 /system/lib64/libc.so (__libc_init+88)
Stack frame 10-14 12:48:14.040 9135 9135 D SPHINX_CORE_DUMP: #03 pc 00000000000090d8 /system/bin/seempd
Stack frame 10-14 13:05:18.105 9727 9727 D SPHINX_CORE_DUMP: #00 pc 0000000000011b44 /system/bin/seempd
Stack frame 10-14 13:05:18.106 9727 9727 D SPHINX_CORE_DUMP: #01 pc 000000000000a7f8 /system/bin/seempd
Stack frame 10-14 13:05:18.106 9727 9727 D SPHINX_CORE_DUMP: #02 pc 000000000001a794 /system/lib64/libc.so (__libc_init+88)
Stack frame 10-14 13:05:18.106 9727 9727 D SPHINX_CORE_DUMP: #03 pc 00000000000090d8 /system/bin/seempd
仅查看它,我不知道实际出了什么问题。那么谁能解释这出了什么问题?