libapncv_core.so的UnsatisfiedLinkError,而.apk保存此库

时间:2014-07-22 08:24:00

标签: android javacv

我想在Android上使用JavaCv和我的应用程序。 因此,我按照这里的建议:https://github.com/bytedeco/javacv了解如何安装Android 2.2或更新版本。因此,可以在 \ libs \ armeabi 下找到以下库: libjniopencv_core.so libopencv_core.so

这两个库的所有类也都存在于我的.apk的classes.dex文件中。 我仍然得到以下例外:

java.lang.UnsatisfiedLinkError: Cannot load library: soinfo_link_image(linker.cpp:1635): could not load library "libopencv_core.so" needed by "libjniopencv_core.so"; caused by load_library(linker.cpp:745): library "libopencv_core.so" not found

我尝试通过

加载libopencv_core.so
System.loadLibrary("libopencv_core")

System.loadLibrary("opencv_core")

结果相同..

任何关于如何解决这个问题的提示都将不胜感激。

EDIT1:

我看看/data/app-lib/ccc.android.myappname ...

下可以找到哪些.so文件

尽管libopencv_core.so和其他文件可以在我的.apk中的lib/armeabi/下找到,但只有部分文件可用于/data/app-lib/ccc.android.myappname下的我的活动。其他人因为某些未知原因而被忽略。

有人可以提供帮助吗,我不知道发生了什么。

谢谢。

1 个答案:

答案 0 :(得分:1)

我找到了解决方案:

我在Github上的JavaCv板上讨论了这个问题:

https://github.com/bytedeco/javacv/issues/28

问题可能是下一版本的历史记录,但同时请执行以下操作:

首次使用JavaCv之前:

static {
        System.loadLibrary("tbb");
        System.loadLibrary("opencv_core");
        System.loadLibrary("jniopencv_core");
}

在某些设备(或场合)上,预期的加载顺序会混淆......