2012-09-06 29 views
4

我試圖通過Ant構建一個應用程序(讓我們稱它爲android-app)與一個SDK的依賴(我們稱之爲sdk)。 Eclipse未安裝在此計算機上(爲了推理,它是Jenkins的CI框)。Ant構建Android項目的依賴關係

兩個項目並排放置在兩個完全獨立的目錄中。 android-app位於目錄~/.jenkins/jobs/android-app/workspace中,sdk位於目錄~/.jenkins/jobs/sdk/workspace中。

讓我們假設這兩個項目都是「香草」,並且之前沒有用Ant構建過。我cd../android-app/workspace目錄並運行android update project -p . --library ~/.jenkins/jobs/sdk/workspace通過。我然後cd../sdk/workspace目錄並運行也通過android update project -p .

此時我回到../android-app/workspace目錄並運行ant clean build。它出現錯誤:

BUILD FAILED 
/path/to/ant/build.xml:440: 
/path/to/sdk/workspace resolve to a path with no project.properties file for 
project /path/to/android-app/workspace 

...其中/path/to是目錄的完整路徑。我在這裏簡化了它。

如果我cdsdk工作區和開放project.properties,我收到以下內容:

# ProGuard 
proguard.config=proguard.cfg 

# Project target. 
target=android-10 
android.library=true 

它確實存在。所以,做所有這些文件:

ls

那麼,這是爲什麼失敗?我究竟做錯了什麼?我儘可能提供儘可能多的細節。請讓我知道,如果我可以提供任何額外的東西。

+0

是否local.properties文件包含:sdk.dir = {sdkfolder的路徑}? – petey

+1

另外,檢查你的project.properties文件中是否有這樣的內容:android.library.reference.1 = {共享庫代碼庫的相對路徑} – petey

+0

@forgivegod是的。 'sdk.dir =/path/to/android-sdk-macosx' – Baub

回答

10

嗯,我也遇到過這個問題。

我使用strace來了解到底發生了什麼,並發現您在project.properties中指定的路徑將附加當前文件夾路徑作爲其前綴。

例如, /家庭/ MyFolder文件/項目>螞蟻調試

你在project.properties指定的庫/路徑/要/庫

然後,路徑將成爲 /家/ myfolder/project/path/to/library

+0

那麼如何解決這個問題的解決方案是什麼? – JPM

+4

在上面的例子中,解決方法是將project.properties中的路徑指定爲:../../../path/to/library – user1957140

+1

太棒了,解決了我的問題。谷歌文檔沒有說明路徑需要相對 - gah! – James

2

爲了填補這裏的答案空白,我的Java版本完全關閉了。我非常尷尬。

+2

那麼,這並沒有幫助,因爲我的Java版本是最新的。 – JPM

+0

@JPM是的,James的回答並不反映他在問題評論中所說的內容,即「我被告知應該是一個相對目錄」(即另一個答案是正確的)。 「我的Java版本完全關閉」似乎是沒有意義的「無論再見」類型的觀察結果。 – delicateLatticeworkFever

+0

@goldilocks我很樂意幫助您調試您的問題,但這是我的答案。如果它沒有解決我的問題,我不能接受一個沒有引導我朝着正確方向發展的答案。 – Baub