文章
我正在使用为Android编译的ffmpeg,目前可以正常使用,但是有时会出现错误(基于某些android手机配置),并且该应用程序强行关闭此消息:
致命信号11(SIGSEGV)位于0x00000001(代码= 1),线程20745(AsyncTask#2)
ffmpeg调用位于try / catch内部;但是,它似乎并不在乎。
因此,如何防止这种强制关闭并向用户显示消息?
法尔肯教授
恐怕我做不到。另请参阅此答案,它暗示了原因。
ffmpeg死后,它将带走您的整个程序。这就是事实。使用Java进行编程时,您不必考虑程序会以这种方式崩溃,但是当用C编写的ffmpeg死掉时,它可能会破坏整个Java程序。
try/catch
这没有帮助,因为ffmpeg不知道或不关心Java异常。留在Java程序中的唯一解决方案是找到导致ffmpeg死亡的bug,或者找到触发该bug的原因并以不会崩溃的方式调用ffmpeg。正如Alex Cohn所指出的那样,另一种解决方案是在另一进程中运行ffmpeg,以便它除了自己的进程外不能删除其他任何东西。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
编辑于
我来说两句