【发布时间】:2016-11-18 09:45:12
【问题描述】:
我目前正在尝试构建和使用旨在将 dlib 移植到 Android 的 dlib-android 库。建设成功;但是在对应的demo工程dlib-android-app中使用编译好的共享C++库,开始通过JNI调用库函数时应用崩溃。
对于我在 OSX 或 Debian 上使用任意 NDK 版本在本地执行的任何构建,都会发生此运行时崩溃。但是,使用 dlib-android-app 项目中包含的 dlib-android 预构建版本无法重现崩溃。此外,项目维护者表示他无法重现该问题。
什么因素会导致我的本地构建在两个不同的操作系统上出错,而项目维护人员可以使用相同的代码库和构建过程创建功能构建?会不会是全局编译器标志会导致这个问题?
资源
- 图书馆:https://github.com/tzutalin/dlib-android
GitHub 问题,包括更多信息:https://github.com/tzutalin/dlib-android/issues/13
堆栈跟踪
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)
【问题讨论】:
标签: android c++ android-ndk dlib