我正在尝试让我的 64 位 Android 设备编译本地 32 位 jniLibs,到目前为止一切正常,但我遇到了障碍。
几天来,我一直在研究到底出了什么问题,到处乱逛,但这是我得到的当前错误:
java.lang.UnsatisfiedLinkError: dlopen failed: "/data/app/org.opencv.engine-1/lib/arm64/libopencv_java3.so" 是 64 位而不是 32 位
考虑到 64 位设备认识到它应该编译 32 位架构,这实际上是有希望的,这是我通过省略 arm64、x86_64 和 mips64 实现的,根据这个答案: Android JNI: 32-bit compatability with 64-位设备?
我使用的初始化代码是:
OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);
所以我的问题如下:
是否有某种方法可以编辑 OpenCV 3.0 中包含的 Abi,以识别我只希望在设备识别它应该只搜索 32 位框架之后加载 32 位框架?
恢复到 OpenCV 2.4.11 后功能丢失会更糟吗(我知道本机相机在新框架上无法正常工作)
如果 Abi 的答案是正确的,它将对应于应用程序级别、项目级别或其他(可能是 opencvlib)级别的 gradle 构建吗?那部分在我的脑海中浮现,阅读了另一个答案。