android - 在 OSX 上构建时,dlib/dlib-android 在运行时崩溃

标签 android c++ android-ndk dlib

我目前正在尝试构建和使用 dlib-android 库,旨在将 dlib 移植到 Android。搭建成功;但是在相应的演示项目dlib-android-app中使用编译的共享C++库时,应用程序在开始通过JNI调用库函数时崩溃。

我在 OSX 或 Debian 上使用任意 NDK 版本在本地执行的任何构建都会发生此运行时崩溃。但是,无法使用 dlib-android-app 项目中包含的 dlib-android 预构建版本重现崩溃。此外,项目维护者表示他无法重现该问题。

哪些因素可能导致我的本地构建在两个不同的操作系统上出现错误,而项目维护人员可以使用相同的代码库和构建过程创建功能构建?全局编译器标志可能会导致此问题吗?

资源

堆栈跟踪

backtrace:
    #00 pc 000372dc  /system/lib/libc.so (tgkill+12)
    #01 pc 00014719  /system/lib/libc.so (pthread_kill+52)
    #02 pc 00015337  /system/lib/libc.so (raise+10)
    #03 pc 00011bd1  /system/lib/libc.so (__libc_android_abort+36)
    #04 pc 00010044  /system/lib/libc.so (abort+4)
    #05 pc 0046a103  /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (__gnu_cxx::__verbose_terminate_handler()+226)
    #06 pc 00433dc9  /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (__cxxabiv1::__terminate(void (*)())+4)
    #07 pc 00433e3d  /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (std::terminate()+8)
    #08 pc 00433f61  /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (__cxa_throw+120)
    #09 pc 00150a9c  /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (dlib::compress_stream_kernel_1<dlib::entropy_encoder_model_kernel_5<257ul, dlib::entropy_encoder_kernel_2, 200000ul, 4ul>, dlib::entropy_decoder_model_kernel_5<257ul, dlib::entropy_decoder_kernel_2, 200000ul, 4ul>, dlib::crc32>::decompress(std::istream&, std::ostream&) const+544)
    #10 pc 00150478  /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (dlib::get_serialized_frontal_faces()+63512)
    #11 pc 00140654  /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (dlib::get_frontal_face_detector()+44)
    #12 pc 0013544c  /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (DLibHOGFaceDetector::det(cv::Mat const&)+236)
    #13 pc 000e8d30  /data/app/com.tzutalin.dlibtest-1/lib/arm/libpeople_det.so (Java_com_tzutalin_dlib_PeopleDet_jniBitmapFaceDect+868)

最佳答案

有几篇关于此(类似)问题的相关帖子: C++ Debug builds broke in Snow Leopard X-Code Xcode 3.2.1 and C++ string fails!

运行 python build_push.py 时 - 它将构建

ret = subprocess.call(['ndk-build', '-j4', 'NDK_LOG=1', 'NDK_DEBUG=1', 'V=0'])

这意味着构建调试版本 (described here)

NDK_DEBUG=1 Force a debuggable build (see Table 1).

NDK_DEBUG=0 Force a release build (see Table 1).

考虑使用 NDK_DEBUG=0 更改 build_push.py 脚本

关于android - 在 OSX 上构建时,dlib/dlib-android 在运行时崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38391746/

相关文章:

android - Android NDK 上的 pthread_barrier_t

android - 如何在 Windows 上运行 Android NDK 安装?

安卓光束 : share a in-app link with fallback to web version

c++ - 如何访问 QGridLayout 中的小部件坐标

C++:什么时候需要重新编译有问题?

c++ - Windows 7 中的命名管道

android - 在纯原生 Android 应用程序中呈现文本

javascript - Cordova AdMobPro - 不工作

java - 从 Android 上的 ZipArchiveInputStream 解压符号链接(symbolic link)

android - 如何设置蓝牙打印的字体大小?