本机库无法加载。找不到“libgnustl_shared.so”
Posted
技术标签:
【中文标题】本机库无法加载。找不到“libgnustl_shared.so”【英文标题】:Native library failed to load. Couldn't find "libgnustl_shared.so" 【发布时间】:2018-03-14 00:29:04 【问题描述】:当我尝试在模拟器 x86-64 上运行我的项目时,我遇到了崩溃。我尝试了很多不同的解决方案,但没有人帮助我解决我的问题。
ndk
ldLibs "log"
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
Engine Mobile:无法加载原生库: java.lang.UnsatisfiedLinkError: dalvik.system.PathClassLoader[DexPathList[[zip 文件 "/data/app/package-name-1/base.apk"],nativeLibraryDirectories=[/data/app/package-name-1/lib/x86_64, /data/app/package-name-1/base.apk!/lib/x86_64, /vendor/lib64, /system/lib64]]] 找不到“libgnustl_shared.so”
这是我的 android.mk、add.application.mk 和 Application.mk 文件 Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: Android.mk process_begin: CreateProcess(NULL, "", ...) failed
【问题讨论】:
你知道什么是原生库吗? @ThorbjørnRavnAndersen 是的。它库很好地适用于其他设备。只有 x86-64 才有问题。 如果静态链接到 STL(即gnustl_static
),是否也有同样的问题?
@ПавелТихонов 你解决了这个问题吗?
【参考方案1】:
libgnustl_shared.so 不在 Android 系统库中。您必须将它包含在您的 apk libpath 中,或者像使用 gnustl_static 提到的那样静态链接它。您也可以使用另一个 c++ stl l 猜测,或者如果您有 root 权限,只需将 libgnustl_shared.so 放入 /system/lib 或 /system/lib64
【讨论】:
以上是关于本机库无法加载。找不到“libgnustl_shared.so”的主要内容,如果未能解决你的问题,请参考以下文章
php: 加载 oracle 驱动程序给出错误“无法加载动态库 - 找不到指定的过程。”
无法加载动态库“libtensorflowlite_c.so”:dlopen 失败:找不到库“libtensorflowlite_c.so”
java.lang.UnsatisfiedLinkError:无法加载库“TSCLIB”:找不到指定的模块
PyInstaller 包烧瓶应用程序无法加载 Python 库,dlopen -> 找不到图像