这里有很多这样的问题,Qt网站和OpenCV网站,但它们都不符合我的情况。 (无论如何,很多都没有答案。)
我正在使用OpenCV for Android 2.4.6(可从官方网站下载的预建版本) 使用Qt 5.0.1 for Android在Samsung Galaxy Note 2上构建适用于Android的原生应用程序(4.1.2) (使用QtCreator 2.7.2)在x86_64 Linux主机上。
我已链接到../sdk/native/libs/armeabi-v7a文件夹中的库。 (我没有从源代码构建OpenCV,我只是使用下载的软件包中的内容)。这包括一个libopencv_androidcam.a库。 (我还尝试过libnative_camera_r4.1.1.so共享库。) 我还下载了市场应用程序“OpenCV Manager”。
示例目录中的示例.apks在我的手机上工作,但我没有尝试自己构建它们,因为我没有设置Java开发环境。
启动我的应用程序,其中包含cv::VideoCapture inputCapture(CV_CAM_ANDROID);
语句,我收到以下错误,没有摄像头输入:
E/OpenCV::camera(15299): CameraWrapperConnector::connectToLib ERROR: cannot dlopen camera wrapper library
E/OpenCV::camera(15299): Native_camera returned opening error: 4
我的问题:
非常感谢您的帮助!
答案 0 :(得分:1)
我将在http://answers.opencv.org处重复我从@Moster用户那里得到的答案:
从文件夹中复制libnative_camera_r4.1.1.so / sdk / native / libs / armeabi-v7a到你的Qt项目的文件夹 /安卓/库/ armeabi-V7A。确保您也允许使用相机 在Qt创建者的android_manifest中。也许这一切都有帮助
这确实有效。虽然我已经在Manifest.xml中提到了相机权限(或者更确切地说是Qt项目设置),但是将共享库复制到项目目录就可以了。
似乎在构建期间找到并链接了它,但未从其原始位置复制到设备。 部署设置中的“将本地Qt库复制到设备”(仅限Qt库?)和OpenCV管理器应用程序(仅在直接从Java代码调用时加载正确的库?)都没有帮助过。