2012-12-11 31 views
4

差不多Adding a external jar reference in Android.mk找到答案,但我還沒有完全在那裏。從libs /添加一個jar文件到Android.mk

我的項目在libs /目錄中包含commons-io-2.4.jar和jsch-0.1.49.jar。在月蝕中一切都很美妙。現在我想編寫一個Android.mk文件來自動構建我的項目。

我的Android.mk看起來像這樣,但它不起作用。

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

LOCAL_SRC_FILES := $(call all-java-files-under, src) 

LOCAL_PACKAGE_NAME := MyProject 
LOCAL_CERTIFICATE := platform 

LOCAL_STATIC_JAVA_LIBRARIES := jsch-0.1.49 commons-io-2.4 

LOCAL_PROGUARD_FLAGS  := -include $(LOCAL_PATH)/proguard.flags 

include $(BUILD_PACKAGE) 

LOCAL_STATIC_JAVA_LIBRARIES := libs 
LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libs:jsch-0.1.49 libs:commons-io-2.4 

include $(BUILD_MULTI_PREBUILT) 

我敢肯定,這只是一個小祕密,我弄錯了,但我弄不明白。

Android.mk文件有很好的參考嗎?我能找到的所有食譜都是和ndk一起工作的。

+0

你可以找到關於AOSP構建系統是如何工作的一個很好的參考:http://www.kandroid.org/online-pdk/guide/build_cookbook.html –

+0

上面的鏈接不再起作用。 – dgelormini

+0

https://wladimir-tm4pda.github.io/porting/build_cookbook.html可能是同一件事。 –

回答

18

好的,幾個小時的谷歌搜索和試驗似乎找到了解決方案。
文檔化在這裏給別人找到:

的關鍵是

  1. 定義LOCAL_STATIC_JAVA_LIBRARIES與我想包括,例如庫的符號名稱libjsch
  2. 執行CLEAR_VARS(爲什麼?)
  3. 定義LOCAL_PREBUILT_STATIC_JAVA_LIBRARIESlibjsch:<path-to-jar-file>
  4. 包括BUILD_MULTI_PREBUILT

(測試表明,任何符號名稱(如「富」)工作正常,只要在這兩個聲明相匹配。)

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

LOCAL_SRC_FILES := $(call all-java-files-under, src) 

LOCAL_PACKAGE_NAME := MyProject 

LOCAL_STATIC_JAVA_LIBRARIES := libjsch 

include $(BUILD_PACKAGE) 

include $(CLEAR_VARS) 

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libjsch:libs/jsch-0.1.49.jar 

include $(BUILD_MULTI_PREBUILT) 
+0

如何在android.mk中添加.aar文件? – ofskyMohsen

3

由於一噸愛德華·福爾克。我剛剛解決了我的問題,回答你給我再次感謝,這裏是我的代碼。關鍵字「lib」是一個夜間母馬。

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

LOCAL_MODULE_TAGS := optional 

LOCAL_SRC_FILES := $(call all-subdir-java-files) 

LOCAL_PACKAGE_NAME := MDM 

LOCAL_STATIC_JAVA_LIBRARIES := libandroid-async-http libgcm libjson-simple 


LOCAL_JAVA_LIBRARIES += telephony-common mms-common 

LOCAL_CERTIFICATE := platform 

include $(BUILD_PACKAGE) 

include $(CLEAR_VARS) 

LOCAL_PREBUILT_STATIC_JAVA_LIBRARIES := libandroid-async-http:libs/android-async-http-1.4.4.jar libgcm:libs/gcm.jar libjson-simple:libs/json-simple-1.1.1.jar 

include $(BUILD_MULTI_PREBUILT) 
相關問題