【问题标题】:Native library failed to load. Couldn't find "libgnustl_shared.so"本机库无法加载。找不到“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),是否也有同样的问题?
  • @ПавелТихонов 你解决了这个问题吗?

标签: java android android-ndk ndk-build


【解决方案1】:

libgnustl_shared.so 不在 Android 系统库中。您必须将它包含在您的 apk libpath 中,或者像使用 gnustl_static 提到的那样静态链接它。您也可以使用另一个 c++ stl l 猜测,或者如果您有 root 权限,只需将 libgnustl_shared.so 放入 /system/lib 或 /system/lib64

【讨论】:

    猜你喜欢
    • 2016-05-01
    • 2018-02-06
    • 2014-05-06
    • 1970-01-01
    • 1970-01-01
    • 2013-01-24
    • 2013-04-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多