2016-01-05 58 views

回答

1

您不能直接在您的應用中使用.a庫。這些庫是靜態的,Android應用程序只允許您加載動態庫。

但是你可以建立一個動態庫鏈接你的靜態庫。你只需要添加幾行到你的Android.mk鏈接到這個靜態庫。將你的預編譯的.a和他的頭文件放在jni文件夾旁邊的prebuild 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) 
+0

感謝您的快速響應。這裏我有一點疑問。如何在android studio中添加Android.mk文件? – Pradeep

+0

不客氣。你用什麼來構建你的本地代碼? – sonic

+0

正在使用「com.android.tools.build:gradle-experimental:0.4.0」。這是沒有Android.mk構建任何其他方式。是否沒有其他方式,然後請指導我如何覆蓋build.gradle文件ndk_build ... – Pradeep