2011-02-27 35 views
23

我有一個具有Ant構建文件的Android項目。它通過命令行的偉大工程:在eclipse中使用Android build.xml?

[email protected]:~/git/$ ant 
Buildfile: build.xml 
    [setup] Android SDK Tools Revision 8 
    [setup] Project Target: Android 2.1-update1 
    [setup] API level: 7 
    [setup] 

    ... etc etc etc ... 

但是當我嘗試在Eclipse中使用,build.xml有一個紅色-X。

<?xml version="1.0" encoding="UTF-8"?> 
<project name="MyWonderfulProject" default="help"> 

<project加下劃線出現錯誤:默認目標的幫助並不在這個項目

好像在互聯網上的其他人有這個問題存在,它似乎被事實所引起build.xml正在使用來自此構建文件導入的多個嵌套的android特定文件的指令。

我的工作區中有其他項目使用Eclipse的構建機制,因此我知道我的環境能夠編譯,運行和部署Android應用程序而不會出現問題。但是這個構建文件讓我頭疼。

什麼是修復?

回答

0

如果你的build.xml有其自己的幫助對象,而不是依賴於進口的一個,那麼你就需要把這個目標線

<taskdef name="setup" classname="com.android.ant.SetupTask" classpathref="android.antlibs" /> 
+1

我有一個類似的問題,並沒有自定義的幫助對象。應使用android_rules.xml中的幫助目標,但即使將其粘貼到build.xml文件中也不能解決此錯誤。 (Eclipse eclipse 3.6,android skd 10,target是android-7)在命令行上用ant建造完美。 – forksandhope

1

這是不是一個真正的答案之前,但爲了什麼這是值得的,我可以通過從工作區中刪除eclipse項目,在項目目錄中刪除。*,然後重新開始,從而使問題消失。 Eclipse FTW!

13

選項1:

在build.xml文件中導入Android ant模板文件。假設你已經在local.properties定義sdk.dir,並指向您的Android安裝目錄下,添加項目元素下的以下內容:

<import file="${sdk.dir}/platforms/${target}/templates/android_rules.xml" /> 

選項2:

實際使用了Android的Ant目標在Eclipse螞蟻的角度來看,以上將無濟於事。似乎有一些水平一般不兼容,我還沒有想出徹底解決,而是把事情在令人滿意的水平,雖然工作,您可以:

  • 導入該項目的build.xml作爲一個建設者。項目屬性 - >建設者 - >導入。
  • 請勿使用選項1。相反,請忽略關於缺少模板的警告。全局屬性 - > Ant - >編輯器 - >問題。將build.xml添加到名稱。

這將對所有項目產生影響並忽略實際錯誤,因此它不是一個完美的解決方案。但是您可以在Eclipse內部以及命令行中使用Android構建選項。

+0

這是朝正確方向邁出的一步!後續:現在,當我查看build.xml時,red-X會消失。但在Ant方面,它仍然有一個錯誤:'無法找到從...導入的$ {sdk.dir}/platforms/$ {target} /templates/android_rules.xml。當我將鼠標懸停在編輯器中的變量上時,會彈出正確的值。但是螞蟻的觀點似乎並沒有做到這一點。幫幫我? – poundifdef

+0

你讓我的一天,Tatu Lahtela!非常感謝你的回答,這非常有幫助! :-) – Bryan

+0

這幾乎可行! Ant透視圖不會在我的build.xml中顯示目標,因此我可以雙擊單個目標。你有同樣的行爲嗎? – poundifdef

4

這並不能解決問題,但它會讓Eclipse停下來。轉至Window > Preferences > Ant > Editor,然後選擇​​選項卡。檢查ignore all buildfile problems框。

+0

這幾乎可以工作!Ant的透視圖不會顯示我的build.xml中的目標,這樣我就可以雙擊單個目標。你是否得到相同的行爲? – poundifdef

+0

在檢查忽略框必須打開/關閉build.xml讓錯誤消失 – Asahi

6

在$ {sdk.dir}/tools/ant/main_rules中定義了一個名爲'help'的目標。像下面的xml,

<target name="help"> 

    <echo>Android Ant Build. Available targets:</echo> 
    <echo> help:  Displays this help.</echo> 
    <echo> clean:  Removes output files created by other targets.</echo> 
    <echo> compile: Compiles project's .java files into .class files.</echo> 
    <echo> debug:  Builds the application and signs it with a debug key.</echo> 
    <echo> release: Builds the application. The generated apk file must be</echo> 
    <echo>    signed before it is published.</echo> 
    <echo> install: Installs/reinstalls the debug package onto a running</echo> 
    <echo>    emulator or device.</echo> 
    <echo>    If the application was previously installed, the</echo> 
    <echo>    signatures must match.</echo> 
    <echo> uninstall: Uninstalls the application from a running emulator or</echo> 
    <echo>    device.</echo> 
</target> 

將這一個複製到您的build.xml,它應該工作。

+2

似乎有效,實際上,你需要的只是 tamberg

2

我有同樣的問題,我所做的只是轉到Eclipse的

Window->Preferences->Ant->Editor->Problems 

,並單擊

Ignore All Build File Problems.