首页 > 解决方案 > Android中的动态链接

问题描述

我已经构建了 2 个 android 本机库 A 和 B,使得库 B 依赖于库 A。我的 JNI native.cpp 从库 A 导入。我添加了库 A 和库 B 的包含文件,并且还添加了我的 Java MainActivity.java 中的 .so 文件,如

    System.loadLibrary("A");
    System.loadLibrary("B");
    System.loadLibrary("native-lib");

但是,我遇到了未定义的参考错误。因此,我将 .so 文件添加到 cmake 链接器,如下所示

target_link_libraries( # Specifies the target library.
            native-lib

            # Links the target library to the log library
            # included in the NDK.
            ${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/armeabi-v7a/libA.so )

target_link_libraries( # Specifies the target library.
            native-lib

            # Links the target library to the log library
            # included in the NDK.
            ${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/armeabi-v7a/libB.so )

即使某些符号可能已被解析,我仍然会收到错误消息,因为这是静态链接,而 .so 文件需要动态链接。因此,我想知道如何动态链接这些并构建具有多个依赖项的项目。

标签: androidc++android-ndk

解决方案


推荐阅读