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对它在自己的机器上编译一下,生成其它的库。编译时用的ndk-build一定要和Qt里的一致,要不然编译出的库到Qt里用不了。

在写 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文件

基本上就是这些了。

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...