我正在尝试运行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_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'
我错过了什么吗?应用程序的设置是否需要先前的步骤?
由于
答案 0 :(得分:0)
还不是100%肯定,但看起来问题是Android版本(我使用的是5.0设备)或设备本身。 我刚刚在新手机中安装了演示应用程序,它确实有用
答案 1 :(得分:0)
确保您的应用程序包含所有必需的.so文件。您可以使用Android studio进行检查,只需单击.apk文件,它将显示.apk文件内容。如果它没有opencv .so文件,那么手动将那些.so文件复制到" lib"项目中的文件夹,并在.gradle文件中提供它的依赖项。