一、提示dlopen failed: library "libc++_shared.so" 然后app闪退,但系统下明明存在是/system/lib64/libc++_shared.so,chapgpt给的介绍是“可能是Android 上遇到 java.lang.UnsatisfiedLinkError
并提示 dlopen failed: library "libc++_shared.so"
的错误通常意味着应用程序在运行时无法找到或者无法加载 libc++_shared.so
库。即使系统下 /system/lib64/libc++_shared.so
存在,你的应用程序可能也没有权限加载系统目录下的这个库,或者这个库版本与你的应用需要的版本不兼容。”
AndroidRuntime: java.lang.UnsatisfiedLinkError: dlopen failed: library "libc++_shared.so" not found: needed by /data/app/~~1gp299X7jmJwx3RgrGJ4TQ==/com.hypernano.opencv-vHxGK9mYwZkHdNFg826Mhg==/base.apk!/lib/arm64-v8a/libopencv_calib3d.so in namespace classloader-namespace
01-06 10:28:06.798 3947 3947 E AndroidRuntime: at java.lang.Runtime.loadLibrary0(Runtime.java:1087)
二、解决方法,android studio编译app的是包含jni里面的libc++_shared.so,android studio 打包ndk里面的libc++_shared.so到APK 的 lib/目录下的方法
externalNativeBuild {
cmake {
cppFlags ""
arguments "-DANDROID_STL=c++_shared"
}
}