Android mobile-ffmpeg和unity一起使用造成崩溃

记录一次mobile-ffmpeg和unity一起使用造成的native层报错导致应用崩溃的问题

当mobile-ffmpeg和unity一起使用的时候会产生类似这样的错误:

`11-25 16:00:47.029 8062 8081 E CRASH : signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0013c28811-25 16:00:47.029 8062 8081 E CRASH : *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***11-25 16:00:47.029 8062 8081 E CRASH : Build type 'Release', Scripting Backend 'il2cpp', CPU 'armeabi-v7a'11-25 16:00:47.029 8062 8081 E CRASH : Build fingerprint: 'samsung/beyond2qlteue/beyond2q:9/redacted/Gredacted:user/release-keys'11-25 16:00:47.029 8062 8081 E CRASH : Revision: '17'11-25 16:00:47.029 8062 8081 E CRASH : pid: 8062, tid: 8081, name: UnityMain >>> com.redacted.redacted <<<11-25 16:00:47.029 8062 8081 E CRASH : r0 c8906bc0 r1 00000000 r2 00000000 r3 0000000011-25 16:00:47.029 8062 8081 E CRASH : r4 00000000 r5 c8905aa0 r6 c962e680 r7 0000000511-25 16:00:47.029 8062 8081 E CRASH : r8 00000000 r9 00000000 sl 00000001 fp caafe97011-25 16:00:47.029 8062 8081 E CRASH : ip c9628e2c sp caafe950 lr c8906868 pc 0013c288 cpsr c06f870011-25 16:00:47.029 8062 8081 E CRASH :11-25 16:00:47.029 8062 8081 E CRASH : backtrace:`

这个问题在issue里面作者有过回复称在4.4版本已经修复了,有兴趣深入了解的朋友点击这里

解决办法就是将你的mobile-ffmpeg升级到4.4+版本并且在应用初始化的时候加入以下代码:

Config.ignoreSignal(Signal.SIGXCPU);

大致意思就是因为Unity在内部使用Mono框架,而Mono在内部将SIGXCPU用于GC,解决方案是忽略SIGPWR和SIGXCPU信号。由于时间比较急没有去仔细研究底层的原理,若有明白其中原理的大佬还望给出您宝贵的回复,感激不尽~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天感恩节哎,感谢一直在我身边的亲朋好友。感恩相遇!感恩不离不弃。 中午开了第一次的党会,身份的转变要...
    余生动听阅读 10,740评论 0 11
  • 彩排完,天已黑
    刘凯书法阅读 4,416评论 1 3
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 128,634评论 2 7

友情链接更多精彩内容