Ich habe eine Bibliothek mit NDK-Code-Bibliothek, die ein Sigdev auf ein bestimmtes Gerät, das ich habe, wirft, die meine App tötet. Ist es möglich, diese sigdev zu fangen und eine Java-Ausnahme auslösen? Der Fang muss ohne Änderungen an der Bibliothek durchgeführt werden, die die Ausnahme wirft.Catching NDK SIGABRT von Java-Code ohne Zugriff auf NDK-Code
Die Ausnahme sieht so aus:
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)
Es gibt ähnliche Fragen an anderer Stelle auf SO gefragt, aber es ist, dass sowohl in den Fällen, scheint sie das NDK steuern und den Java sourc, und verwenden Sie die NDK Code-Trigger eine Java-Ausnahme. In meiner Situation habe ich keine Kontrolle über den NDK-Code, es ist eine Closed-Source-Bibliothek ist, so muß ich es ganz über den Java-Code verarbeiten oder zusätzlichen NDK Code meiner eigenen Schöpfung.