1. 程式人生 > >通過Makefile編譯一個三方的jar包的方法

通過Makefile編譯一個三方的jar包的方法

android裡在編譯一個java應用時,如果這個應用需要一個第三方的jar包,那麼就需要將這個三方的jar包通過mk檔案將其編譯到apk裡,下面是將一個三方的jar包編譯到apk包裡的方法.

LOCAL_PATH := $(call my-dir) 
include $(CLEAR_VARS) 

LOCAL_MODULE_TAGS := user 
LOCAL_STATIC_JAVA_LIBRARIES := libdom4j 
LOCAL_SRC_FILES := $(call all-java-files-under, src) 
LOCAL_PACKAGE_NAME := CoolReader 

include $(BUILD_PACKAGE) 

include $(CLEAR_VARS) 
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libdom4j:dom4j-1.6.1.jar 
include $(BUILD_MULTI_PREBUILT) 

關鍵在於:

LOCAL_STATIC_JAVA_LIBRARIES := libarity 和 LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := 
libdom4j:dom4j-1.6.1.jar 

其實libdom4j是個名字可以隨便取,但是兩個屬性的值要一樣就好了,但是後面那個冒號裡面就一定要寫你的jar包名,你的jar包一定放在工程的根目錄就是和mk檔案的同級目錄。

要注意:libdom4j這個名一定要是唯一的,要不編譯就會出錯,比如有兩個應用裡都用到了libdom4j這個包名,那麼在編譯時就會出現一下的錯誤資訊:

***/packages/apps/calculator:MODULE.TARGET.JAVA.LIBRARIES.libarityalready defined by packages/apps/coolReader

意思就是用兩處定義了libarity,一處是/packages/apps/calculator,另一處是packages/apps/coolReader