Kotlin-Android集成OpenCV4.9.0运行报错:找不到libopencv_java490.so库
OpenCV 4.9.0在Kotlin-Android项目中加载本地库失败问题
我给Kotlin-Android项目集成了OpenCV 4.9.0,配置和构建环节都没有报错,但调用VideoCapture截取视频帧时,应用抛出以下错误:
UnsatisfiedLinkError: dlopen failed: library "libopencv_java490.so" not found
但我的项目中实际只有libopencv_java4.so文件,相关代码如下:
object VideoUtils { fun getFirsFrameFromVideo(videoPath: String): Mat? { System.loadLibrary(Core.NATIVE_LIBRARY_NAME) val videoCapture = VideoCapture() if (!videoCapture.isOpened){ println("DON'T OPENED VIDEO") return null } val frame = Mat() videoCapture.read(frame) if (frame.empty()){ println("EMPTY FRAME") return null } return frame } }
解决办法
直接指定加载存在的库文件
把代码中的System.loadLibrary(Core.NATIVE_LIBRARY_NAME)替换为:System.loadLibrary("opencv_java4")原因是
Core.NATIVE_LIBRARY_NAME在OpenCV 4.9.0中会返回带版本号的opencv_java490,但你的项目里只有不带版本号的libopencv_java4.so,直接指定库名就能匹配到现有文件。检查OpenCV SDK完整性
确认你下载的OpenCV 4.9.0 Android包是否包含对应CPU架构的libopencv_java490.so,如果缺失,重新下载完整的OpenCV Android SDK,替换项目中现有的OpenCV库文件。核对依赖配置
如果是通过Gradle依赖引入OpenCV,确保依赖版本与本地库文件版本一致,避免版本不匹配导致的库查找失败。
内容的提问来源于stack exchange,提问作者JuniorKotlin
相关产品推荐
相关产品推荐

