通過Makefile編譯一個三方的jar包的方法
阿新 • • 發佈:2019-02-08
在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