OpenCV Android 应用程序(基于 Qt)在一个版本上运行,但在另一个版本上失败

Posted

技术标签:

【中文标题】OpenCV Android 应用程序(基于 Qt)在一个版本上运行,但在另一个版本上失败【英文标题】:OpenCV Android app (Qt based) runs on one version but fails on other 【发布时间】:2014-09-09 18:24:32 【问题描述】:

我确实使用 Qt 构建了一个 android 应用程序,相同的构建在 Android 4.4 和 4.3 上工作,但在 4.1 及更低版本上失败。未针对 4.2 进行测试。它会抛出 libopencv_java.so not found 的错误

W/dalvikvm( 3915): threadid=1: thread exiting with uncaught exception (group=0x409c01f8)
E/AndroidRuntime( 3915): FATAL EXCEPTION: main
E/AndroidRuntime( 3915): java.lang.UnsatisfiedLinkError: Cannot load library: link_image[1936]:    37 could not load needed library 'libopencv_java.so' for 'libTrackerDemo.so' (load_library[1091]: Library 'libopencv_java.so' not found)

此外,我已将 min req sdk 版本指定为 14 并且没有设置任何目标 SDK。

【问题讨论】:

【参考方案1】:

这最终得到了一个令人惊讶的解决方案。必须为每个架构指定 ANDROID_EXTRA_LIBS 以及 LIBS。两者的值应相同。这个重复条目的需要是 NDK 使用 LIBS 编译项目,ANDROID_EXTRA_LIBS 在某种程度上与使 Android 能够定位 APK 中的库有关。

【讨论】:

以上是关于OpenCV Android 应用程序(基于 Qt)在一个版本上运行,但在另一个版本上失败的主要内容,如果未能解决你的问题,请参考以下文章

是否可以为 android 编译 Qt+QML+OpenCV 应用程序

4opencv为基于OpenCV的图像处理程序编写界面—关于QTMFCCSharp的选择以及GOCW的介绍

如何将 OpenCV 集成到 Qt Creator Android 项目中

基于Qt的Opencv代码加速

如何将 QT 5.2.0 (win7 x86) 与 OpenCV2.4.6 和 Android 集成

在win和android上同时进行OpenCV程序设计