-
环境搭建
参考这篇文章
运行时libc++_shared.so报错,定位到问题原因为,app中其他.so都是用ndk25编译的,而当前引入的libopencv_java4.so是用ndk18编译的,可能存在libc++_shared.so冲突。 -
opencv源码编译
这里需要说明的是,目前只有4.8.0支持ndk25,低版本的不行。
官方网站
opencv4.8.0
编译方法参考这篇文章
这个阶段发生了一个新问题,编译好的sdk放进去后,libopencv_java4.so加载不起来,报错
java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "AMEDIAFORMAT_KEY_ROTATION" referenced by "/data/app/com.example.anative-TCBFHZJEahIKneb1ILtq4Q==/lib/arm64/libopencv_java4.so"..
一开始搜索这个错误,似乎没人遇到,定位了好久,后来在源码中直接搜索这个符号,发现只有这一个地方用了,显示API>=28会用到,而我的板子API是27,因此无法解析。
降低环境重新一下就好了。opencv-4.8.0\platforms\android路径下ndk-25中修改sdk的编译版本为27,默认32,测试OK。
安卓平台下部署opencv-sdk弯路记录
最新推荐文章于 2024-08-22 10:14:23 发布