Linux 平台 Qt + Android + OpenCV + Zbar 环境配置
机器环境:
ubuntu 18.04,Qt 5.12.9,Android Studio 3.6,opencv-4.5.5-android-sdk,ZBarAndroidSDK-0.2
Qt + Android教程网上多的是,随便看看配置就没问题。
OpenCV到官网下最新的。https://opencv.org/releases/
zbar遇到一点小问题。https://sourceforge.net/projects/zbar/files/?source=navbar 这里可以下到ZBarAndroidSDK-0.2.zip,但测试时发现它的x86库在模拟器上好用,armeabi-v7a库在真机上居然闪崩。
https://github.com/kongpf8848/zbar-android 这里是一个别人编译的,它这里有一个现成的armeabi-v7a,在真机上好用。也可以用ndk-build对它在自己的机器上编译一下,生成其它的库。
在写 Qt 工程的 pro 文件时需要注意 LIBS 的加载顺序。
下面是一个pro文件的片段:
ANDROID_OPENCV = /home/sun/OpenCV-android-sdk/sdk/native
ZBAR = /home/sun/OpenCV-android-sdk/zbar
INCLUDEPATH += $$ANDROID_OPENCV/jni/include
INCLUDEPATH += $$ZBAR/include
LIBS += $$ANDROID_OPENCV/libs/armeabi-v7a/libopencv_java4.so
LIBS += $$ANDROID_OPENCV/3rdparty/libs/armeabi-v7a/lib*.a
LIBS += $$ANDROID_OPENCV/staticlibs/armeabi-v7a/libopencv_*.a
LIBS += $$ZBAR/libs/armeabi-v7a/libiconv.so
LIBS += $$ZBAR/libs/armeabi-v7a/libzbarjni.so
libopencv_java4.so一定要在前面,否则编译无法通过。很奇怪,不知道为什么。
Qt工程的 Projects->Build->Build Android APK->Additional Libraries 里还要加上上面的三个so文件。
基本上就是这些了。