I'm building an Android apk who uses some native libraries of a third party, these libs are in Static Object Code Library (.a files) and I need to write a JNI wrapper to access in Java these functions.
Those libs are already compiled with a cross-compiler and are natively to Android.
How do I compile my JNI sources linking to the functions in the .a libs files?
This is my Android.mk
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_LDLIBS := -llog
LOCAL_MODULE := ndk1
LOCAL_SRC_FILES := native.c
include $(BUILD_SHARED_LIBRARY)
When I compile, I get only the native.c file compiled.
To do that.
I have to declare these libs as modules. Like the following.
With a libcurl.a file in the same folder as this Android.mk file, and a /include fodler with the headers.
Now in the main module just declare the lib and the Android NDK will take care of the rest.
Note.. you should include the Android.mk file of the module before using it. I do that with the call all-subdir-makefiles.
Your libs have to be compiled for your specific target (Arm), to do that I think you have to use the toolchain as described in docs/STANDALONE-TOOLCHAIN.html (in your ndk-r5 folder).