-
问题背景:使用ndk-build编译基于opencv的c++库。使用arm64-v8a的手机时,可正常运行。但使用armeabi-v7a的较老设备(Android 5.1)运行时,会直接崩溃,并提示dlopen failed: library “libc++_shared.so” not found。
-
问题研究:使用百度搜索了dlopen failed: library “libc++_shared.so” not found。但是,几乎都是一个答案。并且,该答案是使用cmake编译的。比如:集成第三so之dlopen failed: library “libc++_shared.so” not found。
-
问题解决:
3.1 想要下载"libc++_shared.so"时,看到了下载说明中,给出了文件来源。故在本地目录"D:\Android\Sdk\ndk\21.1.6352462\sources\cxx-stl\llvm-libc++\libs"目录下,找到了对应的文件目录。
3.2 把libc++_shared.so拷贝到src\main\jniLibs对应目录下:(arm64-v8a目录下的libc++_shared.so获取方法和armeabi-v7a类似)