我已经在Android Studio(https://www.learn2crack.com/2016/03/setup-opencv-sdk-android-studio.html)中设置了OpenCV SDK,但似乎我收到了这种错误消息。
05-12 03:30:08.819 5480-5480/my.xxxxx I/art: Late-enabling -Xcheck:jni
05-12 03:30:08.925 5480-5480/my.xxxxx D/OpenCV/StaticHelper: Trying to get library list
05-12 03:30:08.926 5480-5480/my.xxxxx E/OpenCV/StaticHelper: OpenCV error: Cannot load info library for OpenCV
05-12 03:30:08.926 5480-5480/my.xxxxx D/OpenCV/StaticHelper: Library list: ""
05-12 03:30:08.926 5480-5480/my.xxxxx D/OpenCV/StaticHelper: First attempt to load libs
05-12 03:30:08.926 5480-5480/my.xxxxx D/OpenCV/StaticHelper: Trying to init OpenCV libs
05-12 03:30:08.926 5480-5480/my.xxxxx D/OpenCV/StaticHelper: Trying to load library opencv_java3
05-12 03:30:08.926 5480-5480/my.xxxxx D/OpenCV/StaticHelper: Cannot load library "opencv_java3"
我已将opencv_java3
添加到JNI
文件夹中。
答案 0 :(得分:9)
如果有人还在(2020年3月)搜索此错误-
E/OpenCV/StaticHelper: OpenCV error: Cannot load info library for OpenCV
并结束于此StackOverflow讨论,这是OpenCV贡献者对其站点本身的有益说明。
忽略此错误消息。 “信息库”用于特殊的Android 配置,例如具有CUDA支持的版本。
请在此处查看此问题(当前处于打开状态)-https://github.com/opencv/opencv/issues/15567
答案 1 :(得分:4)
大多数在线教程会告诉您只在armeabi-v7a
文件夹中添加x86_64
和jniLibs
,但这可能会导致最近版本的OpenCV出错。下面简要介绍一下我在遇到同样问题时用来修复此错误的一些调整。
解决方案1:
确保放置OpenCV库的JNI文件夹名为jniLibs
解决方案2:
将OpenCV-android-skd/sdk/native/libs
中找到的目录 ALL 复制到jniLibs
文件夹。
jniLibs folder with all OpenCV libraries added
<强>推荐:强>
即使这是涉及模拟器的单独问题,您还应该在应用程序模块Gradle文件中添加FD3发布的代码段。这样可以防止在尝试在模拟器上运行应用程序后发生INSTALL_FAILED_NO_MATCHING_ABIS错误。
答案 2 :(得分:2)
答案 3 :(得分:1)
一年后,我发现这对我有用。在您的应用程序模块gradle文件中,添加:
splits {
abi {
enable true
reset()
include 'x86', 'armeabi-v7a', 'x86_64'
universalApk true
}
}
这应该放在Android括号中。显然,调整你可能需要的包括。
答案 4 :(得分:0)
可能缺少 Android NDK 附带的 libc++_shared.so 库,如 https://stackoverflow.com/a/66692717/14019579 中所述。
解决方案
在第一个链接适用于 Studio V4.2.1 和 OpenCV 4.5.2 之后执行此操作
答案 5 :(得分:0)
是否有必要使用 OpenCV 3.0?最新的 OpenCV SDK 易于安装。不需要预编译SDK。它使用 CMake 链接到 SDK。您可以在以下网站下载:https://opencv.org/releases/
我将尝试了解如何在 android studio 中导入 openCV。
首先,您必须创建一个 JNI 项目。如您所知,OpenCV 是一个 C++ 库。
然后,导入 SDK,文件 > 新建 > 导入模块...
并选择 OpenCV SDK 中的“sdk”文件夹。
打开setting.gradle,添加这段代码告诉项目你有一个opencv模块。
include "opencv"
project(":opencv").projectDir = file("sdk")
arguments "-DOpenCV_DIR=" + file('../sdk').absolutePath + "/native/jni",
"-DANDROID_TOOLCHAIN=clang",
"-DANDROID_STL=c++_shared"
dependences {
...
implementation project(':opencv')
}
set(ANDROID_OPENCV_COMPONENTS "opencv_java" CACHE STRING "")
message(STATUS "ANDROID_ABI=${ANDROID_ABI}")
find_package(OpenCV REQUIRED COMPONENTS ${ANDROID_OPENCV_COMPONENTS})
target_link_libraries(${PROJECT_NAME} ${ANDROID_OPENCV_COMPONENTS})
您可以在此链接中找到带图片的详细教程:https://kcwong-joe.medium.com/how-to-import-opencv-4-5-2-in-android-studio-d9114179628f