android - 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 文件需要动态链接。因此,我想知道如何动态链接这些并构建具有多个依赖项的项目。
解决方案
推荐阅读
- asp.net - 将网格视图的某些列映射到 DataTable
- ios - 如何检测已添加 UIView 子视图?
- r - 使用来自另一个向量的中断将 R 中的向量切割成间隔
- javascript - Babel 自定义插件 - 插件顺序
- java - 我需要显示文件中的某一行
- c++ - Windows 非 ASCII 文件路径
- python - Python pandas:使用 ~df.type.isin 和 != 的多列过滤器
- tensorflow - 如何在 google colab 中降级到 tensorflow-gpu 1.12 版
- bootstrap-4 - Bootstrap4:CardDeck + Card:如何获得相同的高度?
- rdf - 如何解决错误:{E201} RDF 中属性元素的多个子元素而不丢失分隔?