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 项目中