【发布时间】:2017-04-25 13:15:14
【问题描述】:
我使用的是 Android Studio 2.1.3。
我在 .a 文件中有静态库二进制文件:
libconfig.a
我有我需要在库上调用的方法签名:
CLIENT_ConfigIPCWifi(szDeviceSN, szSSID, szSSIDPassword, nWaitTime);
问题:我将如何调用该方法?
【问题讨论】:
标签: android android-studio android-ndk .a
我使用的是 Android Studio 2.1.3。
我在 .a 文件中有静态库二进制文件:
libconfig.a
我有我需要在库上调用的方法签名:
CLIENT_ConfigIPCWifi(szDeviceSN, szSSID, szSSIDPassword, nWaitTime);
问题:我将如何调用该方法?
【问题讨论】:
标签: android android-studio android-ndk .a
您的 app/src/main/jni 文件夹中需要一个 Android.mk 文件。它应该是这样的
LOCAL_PATH := $(call my-dir)
# This block is to make the NDK aware of your static library
include $(CLEAR_VARS)
LOCAL_MODULE := libconfig
LOCAL_SRC_FILES := path/to/libconfig/libconfig.a
include $(PREBUILT_STATIC_LIBRARY)
# This block is to build your C++ code that will call the method in the static library
include $(CLEAR_VARS)
LOCAL_MODULE := ThatWillCallTheMethod
LOCAL_SRC_FILES := cppFileThatWillCallTheMethod.cpp
LOCAL_STATIC_LIBRARIES := libconfig.a
include $(BUILD_SHARED_LIBRARY)
在您的jni 文件夹中,您将拥有:cppFileThatWillCallTheMethod.cpp。在该文件中,您将调用 CLIENT_ConfigIPCWifi(szDeviceSN, szSSID, szSSIDPassword, nWaitTime);不知何故,您必须知道需要包含 libconfig.a 中的哪些头文件。
希望这会有所帮助!
【讨论】: