1
我有一个库ndk代码库,它正在我的特定设备上抛出sigdev,这会杀死我的应用程序。是否有可能赶上这个sigdev并抛出一个Java异常?捕捉必须在不修改抛出异常的库的情况下完成。从Java代码中捕获NDK SIGABRT而无法访问ndk代码
例外看起来像这样:
01-26 09:09:38.610 19393-19869/com.foo.bar A/libc: /Volumes/Android/buildbot/src/android/ndk-r12-release/ndk/sources/cxx-stl/llvm-libc++abi/libcxxabi/src/abort_message.cpp:74: void abort_message(const char *, ...): assertion "terminating with uncaught exception of type char const*" failed
01-26 09:09:38.610 19393-19869/com.foo.bar A/libc: Fatal signal 6 (SIGABRT) at 0x00004bc1 (code=-6), thread 19869 (Thread-9201)
上有SO别处问类似的问题,但它似乎在这些情况下,他们同时控制NDK和Java源程序,并使用NDK代码触发一个java异常。在我的情况下,我无法控制ndk代码,它是一个封闭的源代码库,所以我必须完全通过Java代码或我自己创建的其他ndk代码来处理它。