uniapp 安卓离线包引入opencvSDK
环境
Android-SDK@3.8.12.81924_20230817 (用最新的sdk同理,地址)
opencv-4.9.0-android-sdk (link)
步骤
准备好以上两样,先打开uni的离线SDK中的UniPlugin-Hello-AS项目
选择导入module
选择OpenCV的sdk文件夹
会发生报错
检查项目是否需要用到kotlin,不需要直接注释它,这里我不需要用到kotlin,直接注释
由于用到Cmake,所以要导入你的ndk路径
在local.properties添加ndk路径
没有ndk的去下。我这里用的25.1.8937393版本,看其他官方示例里面好像用的25.2.9519653版本,不过我这能跑就行,就不同步版本了。
此时编译通过,运行到设备报错
接下来报错,找不到lib/x86/lib++_shared.so
这里和GPT进行了激烈的讨论,给出的解决方法都无法解决。
开始以为是缺少这个文件,后来查了一下文件确实存在的。然后再审查这个报错,看到熟悉的uniapp-v8-release,这就是写每个插件都要引入的uniapp-v8-release.aar文件;立马想到是冲突的问题。
解决方法
注意看目录,在app主应用中的配置文件加入packagingOptions
;期初只写了一个lib/x86/libc++_shared.so
,后来还是报错。只不过报错的是一样的,就是提示冲突不一样,就有了后来的'lib/x86_64/libc++_shared.so'
…略
在插件中使用
照常引入这个sdk,写入这个Mat,确认引入的opencv库里的
编译运行