1. 问题背景:使用ndk-build编译基于opencv的c++库。使用arm64-v8a的手机时,可正常运行。但使用armeabi-v7a的较老设备(Android 5.1)运行时,会直接崩溃,并提示dlopen failed: library “libc++_shared.so” not found。

  2. 问题研究:使用百度搜索了dlopen failed: library “libc++_shared.so” not found。但是,几乎都是一个答案。并且,该答案是使用cmake编译的。比如: 集成第三so之dlopen failed: library “libc++_shared.so” not found

  3. 问题解决:
    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类似)
在这里插入图片描述

APP_STL := c++ _shared 也会报java.lang.UnsatisfiedLinkError: dlopen failed : library " libc ++ _shared .so" not found 所以解决方法是,在jni下加入一个cpp文件,该文件可以是空白,然后就不抱这个错误了 今天换了台新电脑,安装完环境顺手运行了以前写的项目,结果一脸懵逼,直接崩了。。。(瞬间强迫症就犯了,受不了自己电脑里有错误代码) 看了下日志【java.lang.UnsatisfiedLinkError: dlopen failed : library libc ++ _shared .so” not found】找不到库“ libc ++ _ shared.so Android Studio 配置OpenCV 的时候出现这样的提示 黄色警告 libc ++ _shared .so" not found : System.err: java.lang.UnsatisfiedLinkError: dlopen failed : library " libc ++ _shared .so" not found 最后自己把OpenCV4.4.0 下载的sdk 直接当成库引入到项目就好了 具体可以参考点击查看OpenCV4.4.0的配置 1.libgnustl _shared .so   not found 问题 把在libs里新建一个armeabi-v7a。把armeabi里的so文件复制进去。clean项目,重新跑一下,解决! java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip file “/data/app/com.demo.hellowcdb-1/base.apk”],native Library Directories=[/data/app/com.demo.hellowcdb-1/lib/arm64, /data/app/com.demo.hellowcdb-1/base.apk!/lib/arm64-v8a, /sys. 使用Android Studio 3.5.3 加 OpenCV 4.2开发项目时出现报错,报错信息如下: D/OpenCV/StaticHelper: Cannot load library "opencv_java4" W/System.err: java.lang.UnsatisfiedLinkError: dlopen failed : library " libc ++ _shared .so" ... 2021-09-17 16:58:42.535 19816-19816/com.example.nss E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.nss, PID: 19816 java.lang.UnsatisfiedLinkError: dlopen failed : library " libc ++.so" not found at java.lang.Runtime.load Library 0(...