找回密码
 立即注册
查看: 452|回复: 0

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

[复制链接]
发表于 2021-4-14 08:26 | 显示全部楼层 |阅读模式
记录一次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信号。由于时间比较急没有去仔细研究底层的原理,若有明白其中原理的大佬还望给出您宝贵的回复,感激不尽~
懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Unity开发者联盟 ( 粤ICP备20003399号 )

GMT+8, 2024-9-20 22:54 , Processed in 0.087233 second(s), 25 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表