我正在开发 Android 应用程序以与网络打印机配合使用。 Atol 打印机有自己的用于打印文本的本机库 (*.so)。在某些情况下,这个库会抛出本机异常,即使我的代码包含在
try { } catch (t: Throwable) { }
! 中,我的应用程序也会崩溃
logcat中显示以下信息:
Fatal signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x630000005d in tid 29523 (RxCachedThreadS), pid 27187 (my.app.package)
如何在 Kotlin 代码中处理这个本机异常?
我不知道你的库方法返回什么,但你总是可以返回一个 nullptr 并使返回类型可为空。这样你就可以在内部处理错误并在返回 nullptr 之前使用 __android_log_print() 记录它们。 这样你就可以在 Logcat 中看到该消息。