如何包含来自不同项目库的.so文件?

时间:2014-12-04 12:14:50

标签: android android-ndk gradle

我正在运行基于两个库项目的项目,这些项目具有libs/armeabi folders和相应的.so文件。但是当我运行该项目时,它会编译一个.so文件和其他.so文件不相关指向。所以我得到了UnsatifiedLinkError。

这是项目结构:

  1. LibProjectA

    +库/ armeabi / a.so

  2. LibLibProjectB

    +库/ armeabi / b.so

  3. MainProject

    • 成功加载a.so个文件
    • 但很难加载b.so文件
  4. 将a.so文件复制为LibLibProjectB/libs/armeabi/a.so

    时,它确实有效

    你能帮助我解决这个问题吗?

    先谢谢

1 个答案:

答案 0 :(得分:0)

在Android.mk中,您可以为要添加的每个库添加以下行:

include $(CLEAR_VARS)
LOCAL_MODULE    := a_prebuilt
LOCAL_SRC_FILES := 3rdparty/$(TARGET_ARCH_ABI)/a.so
include $(PREBUILT_SHARED_LIBRARY)

然后,在最后一个模块中,添加以下内容:

LOCAL_SHARED_LIBRARIES := a_prebuilt b_prebuilt

希望它对你有所帮助!