本机库无法加载。找不到“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 -> 找不到图像

无法加载动态库 'C:\xampp\php\ext\php_imagick.dll' - 找不到指定的模块

Windows2003系统问题:“无法加载安装程序库wbemupgd.dll,或是找不到函数OcEntry.