【问题标题】:Android: Cannot load native library's dependencyAndroid:无法加载本机库的依赖项
【发布时间】:2013-12-31 02:30:35
【问题描述】:

我正在尝试在 Android 中加载我的原生库(libhello-jni.so)及其依赖项(liblas.so)。但我总是收到此错误

原因:java.lang.UnsatisfiedLinkError:无法加载库:soinfo_link_image(linker.cpp:1673):无法加载“libhello-jni.so”所需的库“liblas.so.2.0.0”;由 load_library(linker.cpp:771) 引起:找不到库“liblas.so.2.0.0”

在加载 hello-jni 库之前,我也使用 System.loadlibrary("las")
顺便说一句,我使用 android-cmake 生成库。

问题是我不知道如何在 cmake 中导出 hello-jni 的依赖项。显然,将 liblas.so 复制到 libs 文件夹不起作用。我认为 liblas.so 也是 liblas.so.2.0.0 的链接文件。这是我的 cmake 文件


我被困在这两个星期了。有人可以帮我解决这个问题吗?

【问题讨论】:

    标签: android android-ndk cmake


    【解决方案1】:

    最好的解决方案是将您的品牌更改为链接到liblas.so,或者可能是liblas.2.0.0.so。如果您需要这方面的帮助,请发布您的 Android.mk 文件。

    如果你真的需要使用liblas.so.2.0.0,这里有窍门说明:https://stackoverflow.com/a/11434262/192373

    【讨论】:

    • 嗯,这不是我想要的。我正在使用 cmake 而不是 android ndk 来构建。此外,当我在 android 设备上运行应用程序时,我收到了这个错误Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)
    • 如果您使用cmake 来构建您的libhello-jni.so,您仍然可以控制链接命令。如果您需要帮助,也许您应该发布您的 cmake 脚本。此外,(回复:SIGSEGV)确保您的构建使用与 Android 兼容的工具链。
    • 我发布了我的 cmake 文件,我正在使用带有 arm-linux-androideabi-4.4.3 架构的独立工具链。
    • 我承认我曾尝试构建 Cmake liblas for Android 作为练习,但惨遭失败。如果您正在寻找使用 Android 的顺畅路径,我建议尽可能使用 ndk-build 和静态库。
    • 我已经成功构建了liblas!我仍然使用 cmake 和静态库来构建。错误Fatal signal 11 (SIGSEGV) at 0xdeadbaad (code=1)是因为它没有在android中找到las文件。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-12
    • 1970-01-01
    • 2012-09-13
    • 2022-01-20
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    相关资源
    最近更新 更多