- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我有一个使用 OpenCV 3.1
的应用程序。我将 lib_opencv_java.so
文件复制到 jniLibs
文件夹中。现在我想将一个新的 sdk 集成到我的应用程序中,但是这个 SDK 也使用不同版本的 OpenCV。 SDK OpenCV 库随 Gradle 添加,未复制到 jni
文件夹。当我构建应用程序时,它在编译时出现错误:
More than one file was found with OS independent path 'lib/arm64-v8a/libopencv_java3.so'
为了解决这个问题,我重命名了我的 OpenCV 并用不同的名称重新生成了 .so
文件。之后,它没有给出上述问题,但是当我尝试打开使用 OpenCV 的 Activity 时。应用程序因以下错误而崩溃:
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol “_ZN2cv7imwriteERKNS_6StringERKNS_11_InputArrayERKSt6vectorIiSaIiEE” referenced by “/data/app/io.xxxxxx-gilxH9B4dAHGtuXtU4Sl6Q==/lib/arm64/libProcess.so”.
最佳答案
要正确消除以下错误:
More than one file was found with OS independent path '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'
}
...
}
关于android - 有没有办法使用同一个库的两个不同版本,所以android中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54452509/
我是一名优秀的程序员,十分优秀!