1

我正在尝试运行 bytedeco 的 Android 示例,但我不断得到一个

org.bytedeco.javacv.android.recognize.example E/art: dlopen("/data/app/org.bytedeco.javacv.android.recognize.example-2/lib/arm/libjniopencv_core.so", RTLD_LAZY) failed: dlopen failed: cannot locate symbol "_ZN2cv8internal18WriteStructContextD1Ev" referenced by "libniopencv_core.so"...

这发生在这一行

opencv_face.FaceRecognizer faceRecognizer = createEigenFaceRecognizer();OpenCvRecognizeActivity课堂上

我尝试使用的任何其他 OpenCV 相关类都出现错误opencv_core

我没有更改示例应用程序中的依赖项。它们看起来像这样:

compile group: 'org.bytedeco', name: 'javacv', version: '1.3.2'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.2.0-1.3', classifier: 'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'opencv', version: '3.2.0-1.3', classifier: 'android-x86'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3', classifier: 'android-arm'
compile group: 'org.bytedeco.javacpp-presets', name: 'ffmpeg', version: '3.2.1-1.3', classifier: 'android-x86'

我错过了什么吗?应用程序的设置是否需要一些先前的步骤?

谢谢

4

2 回答 2

0

确保您的应用程序包含所有必需的 .so 文件。您可以使用 Android studio 检查它,只需单击 .apk 文件,它就会显示 .apk 文件内容。如果它没有 opencv .so 文件,则手动将这些 .so 文件复制到项目的“lib”文件夹中,并在 .gradle 文件中提供它的依赖项。

于 2018-05-09T04:55:08.360 回答
0

还不能 100% 确定,但看起来问题出在 Android 版本(我使用的是 5.0 设备)或设备本身。我刚刚在一部新手机中安装了演示应用程序,它确实可以工作

于 2018-03-26T19:52:51.303 回答