Android NDK - C++ 异常会导致第三方原生库崩溃
Android NDK - C++ Exceptions cause crash with 3rd party native library
我在创建的依赖于另一个第三方库的安卓原生库中遇到了问题。
我正在使用专有的Android POS终端(Android Lollipop API 22(。 它带有一个专有的本机库".so",我正在用我自己的本机代码包装该库,这些代码将从Android Java调用。
我遇到的问题是,当我的代码抛出原生库中捕获的 c++ 异常时(也就是说,我没有向 java 抛出异常(,应用程序崩溃并在 throw 语句中出现 SIGSEGV 致命错误。
如果我将第三方本机库从链接中删除,我可以随心所欲地抛出和捕获异常。 重新添加".so"库,任何抛出都会导致崩溃。
知道如何排除故障或解决问题吗?
我可能会迟到,但我最近遇到了同样性质的崩溃。 就我而言,clang似乎知道编译库的问题,这些库在抛出"本机"异常时崩溃。我已经升级了我的工具链,所以现在它通过当前最新的"android-ndk-r21"交叉编译。 这对我来说做到了。
事实证明,问题是第三方库。 如果本机库是在没有异常的情况下构建的,则调用该库的代码也不能使用异常。
非常令人沮丧。
相关文章:
- 将数组作为参数传递给函数安全吗?作为第三方职能部门,可以探索他们想要的之外的其他元素
- 如何包装第三方DLL在R中使用
- 将 OpenCV 与 CMAKE 中的项目一起构建为第三方库的正确方法
- Android Studio 中带有静态库的原生C++代码
- 如何在 Android Studio 4 中编译 C/C++ 原生代码
- 第三方 API 中的编译错误 - Visual Studio
- Android Studio:如何在build.gradle中定义自定义宏(针对不同的构建变体),并让原生C / C++
- 在Android原生C++中使用Facemark opencv contrib
- 在一个解决方案中针对第三方静态库 (Creo) 的不同版本(版本)进行构建
- Android NDK:用于第三方Java库的静态或共享C++运行时
- 从第三方定义的类继承时shared_from_this
- Qt应用程序找不到第三方DLL并崩溃
- CMake 包含非 cmake 库的第三方标头
- 我可以将c ++清理器仅应用于程序的一部分而不是第三方库吗?
- CMake:Android Studio 原生活动项目无法在项目根目录之外找到第三方库
- 为什么无法覆盖涉及第三方代码的模板类的运算符<<?
- Android NDK - C++ 异常会导致第三方原生库崩溃
- 与第三方公共图书馆/代码接口
- 如何在 gradle 原生项目中包含二进制库?
- 使用 Flutter 从 Android 上的原生编译共享库中调用函数