Android bug之 opencv CascadeClassifier

今天刚刚碰到这种鬼bug,bug内容如下:

07-22 13:43:20.740 20753-20753/com.jxc.localcamerafacedetect E/AndroidRuntime: FATAL EXCEPTION: main
java.lang.UnsatisfiedLinkError: Native method not found: org.opencv.objdetect.CascadeClassifier.CascadeClassifier_0:()J
at org.opencv.objdetect.CascadeClassifier.CascadeClassifier_0(Native Method)
at org.opencv.objdetect.CascadeClassifier.<init>(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等等

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值