我有一个使用OpenCV 3.1的应用程序。我将lib_opencv_java.so文件复制到jniLibs文件夹中。现在,我想将一个新的sdk集成到我的应用程序中,但是这个SDK也使用了不同版本的OpenCV。SDK随OpenCV一起添加,而不是复制到jni文件夹。当我构建应用程序时,它在编译时间上出现了错误:
找到了多个与OS无关的路径lib/arm64-v8a/libopencv_java3.so文件。
为了解决这个问题,我重新命名了我的OpenCV并用不同的名称重新生成了.so文件。在此之后,它没有给出上述问题,但是当我尝试打开使用OpenCV的活动时。应用程序崩溃时出现了以下错误:
“_ZN2cv7imwriteERKNS_6StringERKNS_11_InputArrayERKSt6vectorIiSaIiEE”:dlopen失败:无法找到“/data/app/io.xxxxxx-gilxH9B4dAHGtuXtU4Sl6Q==/lib/arm64/libProcess.so”.引用的符号java.lang.UnsatisfiedLinkError
发布于 2019-01-31 02:51:52
要正确地消除以下错误:
找到了多个与OS无关的路径lib/arm64-v8a/libopencv_java3.so文件。
您应该在app/build.gradle中使用下面的代码
android{
...
packagingOptions {
pickFirst 'lib/x86_64/libopencv_java3.so'
pickFirst 'lib/x86/libopencv_java3.so'
pickFirst 'lib/arm64-v8a/libopencv_java3.so'
pickFirst 'lib/armeabi-v7a/libopencv_java3.so'
}
...
}https://stackoverflow.com/questions/54452509
复制相似问题