Android(安卓)bug之 opencv CascadeClassifier
16lz
2022-05-24
今天刚刚碰到这种鬼bug,bug内容如下:
07-22 13:43:20.740 20753-20753/com.jxc.localcamerafacedetect E/AndroidRuntime: FATAL EXCEPTION: mainjava.lang.UnsatisfiedLinkError: Native method not found: org.opencv.objdetect.CascadeClassifier.CascadeClassifier_0:()Jat org.opencv.objdetect.CascadeClassifier.CascadeClassifier_0(Native Method)at org.opencv.objdetect.CascadeClassifier.(CascadeClassifier.java:38)at com.jxc.localcamerafacedetect.MainActivity.initializeOpenCVDependencies(MainActivity.java:125)at com.jxc.localcamerafacedetect.MainActivity.onResume(MainActivity.java:398)
在Vivo手机上测试正常,但是在三星手机上却爆出这种bug,刚刚把它解决了,现在记录一下。
具体出现原因不详,但是我找到了一种解决办法:
在Android Studio中,进行opencv开发时,需要先导入 opencv库,即:
但是用vivo手机测试的时候,我并没有导入 opencv 的so库,一样可以运行程序,但是在三星手机上的时候,却不能运行,出现了上面的bug。
因为它的bug的内容是说,没找到native 方法,应该就是没有加载到so库,所以我就给他导入了一个so库(路径:…\OpenCV-2.4.9-android-sdk\sdk\native\libs\armeabi-v7a), 放在 opencv库的src目录下,即:
导入so库以后,再运行,就不会报错了。
还有一种会造成 java.lang.UnsatisfiedLinkError: Native method not found 这样的错误,就是你只导入了一种类型的so库,在部分机型里运行没问题,但是碰到有的机型则会显示除这种错误,这就需要你把其他类型的so文件也导入进来armeabi、armeabi-v7a、mips、x86等等
更多相关文章
- Ubuntu10.04 32位编译Android(安卓)4.0源码
- 【小超_U3D】Unity打出Android包,运行报错解决方案
- Android(安卓)调试工具集合
- Android执行linux外部命令
- android studio教程-创建第一个项目Hello World
- Android(安卓)技巧:命令行运行 sqlite3
- 3.创建第一个android项目
- ActionBar的使用——低版本兼容
- android中开机自动运行程序