2011-02-27 15 views
23

Ho un progetto Android che ha un file di build Ant. E le grandi opere tramite la riga di comando:Utilizzo di Android build.xml in eclissi?

[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 ... 

Ma quando cerco di utilizzare questo in Eclipse, build.xml ha un colore rosso-X.

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

<project è sottolineato con l'errore: aiuto bersaglio default non esiste in questo progetto

Sembra come tutti gli altri su internet ha questo problema, e sembra essere causato dal fatto che build.xml utilizza direttive provenienti da più file specifici di Android annidati che questo file di build importa.

Ho altri progetti nel mio ambiente di lavoro che utilizzano il meccanismo di build di Eclipse, quindi so che il mio ambiente è in grado di compilare, eseguire e distribuire applicazioni Android senza problemi. Ma questo buildfile mi sta facendo venire il mal di testa.

Qual è la correzione?

risposta

0

Se il build.xml ha il proprio obiettivo di aiuto piuttosto che basarsi su quella importata, allora avete bisogno di mettere questo obiettivo prima della linea di

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

Ho un problema simile, e non hanno alcun obiettivo di aiuto di auto-definito. dovrebbe essere usato il target di aiuto da android_rules.xml, ma anche incollarlo nel file build.xml non risolve questo errore. (Eclipse 3.6, android skd 10, target è Android-7) costruire con form sulla riga di comando funziona perfettamente. – forksandhope

1

Questo non è davvero una risposta, ma per quello che vale la pena, sono stato in grado di risolvere il problema rimuovendo il progetto eclipse dallo spazio di lavoro, eliminandolo. * nella directory del mio progetto e ricominciando da capo. Eclipse FTW!

13

Opzione 1:

Importare il file del modello formica Android nel file build.xml. Supponendo di aver sdk.dir definito local.properties e indicando la vostra directory di installazione di Android, aggiungere il seguente sotto l'elemento del progetto:

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

Opzione 2:

Per utilizzare effettivamente gli obiettivi formica Android nella prospettiva formica Eclipse, quanto sopra non aiuterà. Sembra che ci sia una certa incompatibilità generale di livello che non ho capito per risolvere completamente, ma per far funzionare le cose ad un livello soddisfacente anche se è possibile:

  • Importa il progetto build.xml come un costruttore. Proprietà del progetto -> Builder -> importazione.
  • Non utilizzare l'opzione 1. Ignora invece l'avviso sul modello mancante. Proprietà globali -> Ant -> Editor -> Problemi. Aggiungi build.xml ai nomi.

Questo avrà un impatto su tutti i progetti e ignorerà gli errori effettivi, quindi non è una soluzione perfetta. Ma puoi usare le opzioni di build di Android all'interno di Eclipse, così come dalla riga di comando.

+0

Questo è un passo nella giusta direzione! Follow-up: ora i red-X se ne vanno quando visualizzo build.xml. Ma nella prospettiva Ant ha ancora un errore: 'Impossibile trovare $ {sdk.dir}/platforms/$ {target} /templates/android_rules.xml importati da ...'. Quando passo il mouse sulle variabili nell'editor, vengono visualizzati i valori corretti. Ma la prospettiva della formica non sembra fare quella sostituzione. Aiuto? – poundifdef

+0

Hai fatto la mia giornata, Tatu Lahtela !! Grazie per l'ottima risposta, che ha aiutato così tanto !! :-) – Bryan

+0

Questo funziona quasi! La prospettiva Ant non mostra gli obiettivi nel mio build.xml così posso fare doppio clic su un singolo target. Hai lo stesso comportamento? – poundifdef

4

Questo non risolve il problema, ma farà smettere di ostacolare Eclipse. Vai a Window > Preferences > Ant > Editor e seleziona la scheda Problems. Controlla la casella ignore all buildfile problems.

+0

Questo quasi funziona! La prospettiva Ant non mostra gli obiettivi nel mio build.xml in modo che io possa fare doppio clic su un singolo target.Proprio lo stesso comportamento? – poundifdef

+0

Dopo aver controllato la casella di ignora ha dovuto aprire/chiudere build.xml per far sparire l'errore – Asahi

6

C'è una destinazione chiamata 'aiuto' definita in $ {sdk.dir}/tools/ant/main_rules.xml come sotto,

<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> 

copia questo sul tuo build.xml e dovrebbe funzionare.

+2

Sembra funzionare. In realtà, tutto ciò che serve è tamberg

2

mi ha stesso problema e tutto quello che ho fatto è stato di avanzamento sul eclisse

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

e cliccare

Ignore All Build File Problems.