我正在为具有 native 支持的 android 测试 opencv。我有一个简单的应用程序,可以通过其精明的表示来更改相机图像。
我面临的问题是它在 Moto G 第一代(Android 5.0)中运行良好,但在三星 Galaxy Grand Neo(API 级别 17)中却不行
我得到的错误是:
FATAL EXCEPTION: main java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1636): could not load library "libopencv_java3.so" needed by "libnative-lib.so"; caused by load_library(linker.cpp:746): library "libopencv_java3.so" not found
我再次检查该文件是否存在于
jniLibs/<ABI>
下。并且还使用商店中的 What's my ABI 应用程序检查两者是否为 armeabi-v7a
.我没主意了。有什么线索吗?
EDiT:添加了更多信息
我忘了提到我正在使用适用于 Android v3.1 的 OpenCV,如果您需要代码,可以在这里找到:https://github.com/leadrien/opencv_native_androidstudio
最佳答案
我在 this 中找到了解决方案堆栈溢出答案。
基本上,它所说的是调用 System.loadLibrary BaseLoaderCallback 返回 LoaderCallbackInterface.SUCCESS 后 .
此外,在为此进行研究时,我遇到了 ReLinker v1.2,它声称它是一种加载 native 库的强大方法。我也在考虑试一试。 Here你可以找到它的 GitHub 存储库
关于未找到 Android native 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41405837/