最近想在Android上面部署yolov5,但是在运行ncnn-android-yolov5-master项目时,遇到了如下错误,不知道这个是什么原因,app直接闪退。
我是按照这个教程来做的:
在Android上运行YOLOv5目标检测 - 迷途小书童的Note迷途小书童的Note
Youtube
https://xugaoxiang.com/2021/02/02/android-ncnn-yolov5/
报错图片:
报错信息如下所示:
E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.tencent.yolov5ncnn, PID: 7181
java.lang.UnsatisfiedLinkError: dlopen failed: library "libyolov5ncnn.so" not found
at java.lang.Runtime.loadLibrary0(Runtime.java:1087)
at java.lang.Runtime.loadLibrary0(Runtime.java:1008)
at java.lang.System.loadLibrary(System.java:1664)
at com.tencent.yolov5ncnn.YoloV5Ncnn.<clinit>(YoloV5Ncnn.java:37)
at com.tencent.yolov5ncnn.MainActivity.<init>(MainActivity.java:45)
at java.lang.Class.newInstance(Native Method)
at android.app.AppComponentFactory.instantiateActivity(AppComponentFactory.java:95)
at android.app.Instrumentation.newActivity(Instrumentation.java:1253)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:3353)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:3601)
at android.app.servertransaction.LaunchActivityItem.execute(LaunchActivityItem.java:85)
at android.app.servertransaction.TransactionExecutor.executeCallbacks(TransactionExecutor.java:135)
at android.app.servertransaction.TransactionExecutor.execute(TransactionExecutor.java:95)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2066)
at android.os.Handler.dispatchMessage(Handler.java:106)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
D/libEGL: loaded /vendor/lib/egl/libEGL_emulation.so
D/libEGL: loaded /vendor/lib/egl/libGLESv1_CM_emulation.so
D/libEGL: loaded /vendor/lib/egl/libGLESv2_emulation.so
W/System: A resource failed to call close.
I/cent.yolov5ncn: Waiting for a blocking GC ProfileSaver
我认为是这里的问题:
couldn't find "libyolov5ncnn.so"
但是我在网上看了查了一些资料,但是都无法找到这方面的教程,我感觉很难受,我之前看到的问题是NDK的版本过低的问题,但是我发现在Android studio上面好像无法提升NDK的版本,最高版本都被限制了:
这个问题我弄了好多天,希望如果有弄出来的同学可以回答一下这个问题,或者推荐一个可以把目标检测算法部署到Android的办法,谢谢!