我是NDK的新手,想从你那里得到一些帮助。我正在尝试运行此Project,但它使我一直显示错误Invalid DT_NEEDED entry "../../lib/lipopencv_core.so"。这可能是因为我正在使用其他人编译的.so文件,并将这些文件直接存储在jniLibs/armeabi-v7a文件夹中,然后使用System.loadLibrary("opencv_java");在java类中调用它
在阅读了这个问题(#177)之后,我发现这个文件必须使用-soname参数进行编译。
但是我该怎么做呢?需要为此制作一个Android.mk吗?或者是CmakeList.txt?
我已经安装了NDK,Cmake和LLDB。
Ty
发布于 2018-05-15 04:40:30
如果您正在使用ndk-build (Android.mk)或CMake (CMakeLists.txt),那么已经为您处理了soname标志。问题很可能是libopencv_core.so是在没有这个标志的情况下构建的。您需要使用-Wl,-soname,libopencv_core.so重新构建它。
发布于 2018-05-15 17:18:37
该项目使用由android-ndk-r8e.构建的OpenCV v2.4.5如果你的设备足够旧,你可以玩它。
但是,如果您打算发布基于此代码的应用程序,则必须使用最新的NDK工具链重新构建这些库(我强烈建议您也使用最新版本的OpenCV )。
https://stackoverflow.com/questions/49289230
复制相似问题