Ali*_*lin 5 java-native-interface android
我正在使用为 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,这样它就不能删除除自己的进程之外的任何其他内容。
| 归档时间: |
|
| 查看次数: |
1119 次 |
| 最近记录: |