【问题标题】:How to include third-party *.a into Android NDK using android studio.?如何使用 android studio 将第三方 *.a 包含到 Android NDK 中。?
【发布时间】:2016-04-09 01:45:25
【问题描述】:

我有来自第三方的 .a 文件。如何在android studio中使用?

请帮帮我。

【问题讨论】:

    标签: android-ndk android-studio-import


    【解决方案1】:

    您不能在您的应用中直接使用.a 库。此库是静态的,Android 应用只允许您加载动态库。

    但是您可以构建一个与您的静态库链接的动态库。你只需要在你的 Android.mk 中添加几行来链接这个静态库。将您的预构建 .a 和他的标题放在您的 jni 文件夹旁边的预构建 jni 中。那么你的 Android.mk 应该看起来像这样:

    LOCAL_PATH := $(call my-dir)
    
    include $(CLEAR_VARS)
    LOCAL_MODULE    := YourStaticLib
    LOCAL_SRC_FILES := ../prebuilt/your_static_lib_prebuild.a
    LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/../prebuilt
    include $(PREBUILT_STATIC_LIBRARY)
    
    include $(CLEAR_VARS)
    
    LOCAL_MODULE    := DynamicLib
    LOCAL_C_INCLUDES := $(LOCAL_PATH) \
                    $(LOCAL_PATH)/../prebuilt
    LOCAL_SRC_FILES := your_src_file.cpp
    LOCAL_LDLIBS    := -llog
    LOCAL_ARM_NEON  := true
    
    LOCAL_STATIC_LIBRARIES := YourStaticLib
    
    include $(BUILD_SHARED_LIBRARY)
    

    【讨论】:

    • 感谢您的快速响应。在这里我有一点疑问。如何在android studio中添加Android.mk文件?
    • 不客气。你用什么来构建你的原生代码?
    • 我正在使用“com.android.tools.build:gradle-experimental:0.4.0”。这是没有 Android.mk 的任何其他构建方式。有没有其他方法然后请指导我如何在 build.gradle 文件中覆盖 ndk_build...
    • 我不知道该怎么做,只使用 gradle。但是您可以使用自己的 Android.mk 文件制作 gradle。 SO上的这个答案解释了如何stackoverflow.com/a/27840210/4170584
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    相关资源
    最近更新 更多