2012-04-08 77 views
0

關於this question,簡單地將一個jar放入/libs並不會在調用ant debug時自動將該jar包括到.dex中。沒有至少與Android SDK版本15.android build:通過命令行編譯添加jar到endstate

我已通過比較相同的項目創建兩種不同的方式驗證了這一點。首先(稱爲'阿爾法'),由Eclipse。其次,通過android create project ...,等等等等(螞蟻的方式,稱之爲'布拉沃')。

Alpha和Bravo I都使用ant debug構建。比較它們的/bin目錄,從布拉沃的*.d中缺少<project_root>/libs下的罐子;阿爾法不是。

在項目創建過程中嵌入Eclipse有什麼魔力?

更好的是,如何確保在構建項目時將jar包傳遞給ant debug|release,jar包含在endstate中?

+0

我能夠通過在列表中添加'.classpath'(這在布拉沃的佈局中顯然缺少)來獲得它,但我希望通過命令行切換來做到這一點;因此,爲什麼這篇文章是評論而不是答案。 – Steven 2012-04-08 01:25:38

回答

1

如果要硬連線,您可能只需調整build.xml以在-pre-build節點中包含類似以下內容。您還可以將其添加到build.xml文件中的自定義目標中,你可以在命令行中包含你想要的東西。像下面的東西可以工作。

<target name="add-jar"> 
    <copy file="${src.folder}/YourJarHere.jar" tofile="libs/YourJarHere.jar" overwrite="true"/> 
</target> 

${src.folder}在ant.properties文件中定義。

喜歡的東西src.folder=PATHOFYOURJAR

那麼你應該能夠運行

ant debug add-jar 

包括文件。

我不得不在過去手動創建libs文件夾,但我不明白爲什麼你不能通過build.xml文件來做到這一點。希望這可以幫助!

+0

謝謝,Rymnel。現在我已經'觸摸'和'回聲'產生'.classpath'。我對「.classpath」起作用感到有些吃驚,但隨後Android開發趨於對Eclipse友好。我的部分需求並未修改/促成Ant工件(通過Gradle運行它)。儘管如此,你的方法無法找到過錯。要把這個問題留待下一天。如果沒有別的出現,我選擇你的答案。 – Steven 2012-04-08 18:31:52