Erreur lors de l'exécution de la commande 'ant' sur Mac OS X 10.9 Mavericks lors de la construction pour Android avec PhoneGap / Cordova

139

Aujourd'hui, j'ai essayé PhoneGap / Cordova avec Mac OS X Mavericks . La construction pour iOS s'est très bien déroulée, mais la construction pour Android n'a pas été sans conjectures.

J'ai installé Android 4.2.2 via le SDK Android Manager (je devais utiliser l'ancien V17 API puisqu'il n'a pas été compatible avec une plus récente), a ajouté le PATH environment variablespour ceux du SDK platform-toolset toolset ai pensé que j'étais prêt à décoller en exécutant la commande :

phonegap run android

Néanmoins, j'ai eu l'erreur suivante:

[phonegap] detecting Android SDK environment...
[phonegap] using the local environment
[phonegap] adding the Android platform...
[error] An error occured during creation of android sub-project. ERROR : executing command 'ant', make sure you have ant installed and added to your path.
Mobiletainment
la source
3
Même chose pour moi ... L'installer via Brew l'a résolu!
Sebastian
Je suis allé dans le dossier / bin, et j'avais toujours la même commande introuvable Problème, l'installer avec brew a aidé, je ne comprends toujours pas pourquoi cela ne fonctionnait pas avant, si j'exécute ant -v à partir du dossier bin que je n'ai pas besoin de définir Environnement varibales, c'est tellement étrange ...
LoveMeow

Réponses:

361

Le message d'erreur s'est avéré vrai car Apache Ant n'est plus sur le chemin de Mac OS X Mavericks.

Solution pare-balles:

  1. Téléchargez et installez Homebrew en exécutant la commande suivante dans le terminal:

    ruby -e "$ (curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )"

  2. Installez Apache Ant via Homebrew en exécutant

    infusion installer fourmi

Exécutez à nouveau la version PhoneGap et elle devrait compiler et installer avec succès votre application Android.

Mobiletainment
la source
1
Même. Votre solution était simple et excellente. Eh bien répondu!
Joakim Wimmerstedt
6
Ant est maintenant en homebrew-core. Simplement utiliserbrew install ant
meaku
3
MISE À JOUR DE LA COMMANDE: ruby ​​-e "$ (curl -fsSL raw.github.com/mxcl/homebrew/go/install )"
Felix
1
N'oubliez pas d'exécuter «brew doctor» après l'installation de brew et avant d'utiliser brew pour installer ant.
Wytze
10
N'oubliez pas brew updateavant de l'utiliser, si vous avez déjà installé homebrew ....
Christos Hrousis
45

Vous pouvez installer ANT via macports ou homebrew.

Mais si vous voulez vous passer des gestionnaires de paquets tiers, le problème peut simplement être résolu en téléchargeant la version binaire à partir du site Web apache ANT et en ajoutant le binaire à votre système PATH.


Par exemple, sur Mountain Lion, dans ~/.bash_profileet ~/.bashrcmon chemin a été configuré comme ceci:

export ANT_HOME="/usr/share/ant"
export PATH=$PATH:$ANT_HOME/bin

Donc, après décompression, apache-ant-1.9.2-bin.tar.bz2j'ai déplacé le répertoire résultant /usr/share/et l' ai renommé ant.

Aussi simple que cela, le problème est résolu.


Remarque N'oubliez pas desudo chown -R root:wheel /usr/share/ant

Coyote
la source
J'ai fait quelque chose de très similaire puisque je n'utilise ni homebrew ni macports et sur le mien, je n'avais rien non plus sur mon chemin pour cela. J'ai téléchargé la version binaire, je l'ai décompressée et j'ai créé un dossier appelé ant dans / usr / local, puis copié à partir du binaire décompressé le dossier bin et lib dans / usr / local / ant, puis ajoutez / usr / local / ant / bin à votre chemin et redémarrer le terminal et tout était d'or, faites simplement ce que Coyote a dit et vous aurez la CLI de phonegap fonctionnant en un rien de temps.
Robert-W
1
Cela devrait être la réponse acceptée. Maigre et propre. Installez ce dont vous avez besoin. L'utilisation d' Apache Ant ne prend que 2 minutes d'installation.
Michel
28

Comme alternative à homebrew, vous pouvez télécharger et installer macports . Une fois que vous avez macports, vous pouvez utiliser:

sudo port install apache-ant

John Mark
la source
1
@ Goaler444: Utilisez-vous une ancienne version de macports? Essayez de port search antrechercher Apache Ant là-bas.
John Mark
Oui, c'est tout, mis à jour les ports en entrant 'sudo port -v selfupdate' et cela a fonctionné. Merci :)
Goaler444
@JohnMark j'obtiens toujours la même erreur, veuillez aider. J'ai suivi le processus que vous avez mentionné, dois-je installer un autre
Charan Giri
Est antsur votre PATH? Si vous tapez which antdans le terminal, obtenez-vous quelque chose?
John Mark
@JohnMark merci pour la réponse lorsque j'ai tapé quelle fourmi j'ai eu "/ usr / local / bin / four"
Charan Giri
21

il n'a pas besoin de porto et d'infusion! parce que vous avez le package sdk android.

.1 modifier votre .bash_profile

export ANT_HOME="[your android_sdk_path/eclipse/plugins/org.apache.ant_1.8.3.v201301120609]" 

// its only my org.apache.ant version, check your org.apache.ant version

export PATH=$PATH:$ANT_HOME/bin

.2 commande make ant qui peut être exécutée

chmod 770 [your ANT_HOME/bin/ant]

.3 tester si vous voyez le message ci-dessous. c'est le succès!

ligne de commande exécuter: ant

Buildfile: build.xml n'existe pas!

Échec de construction

utilisateur2300434
la source
Mon Eclipse est installé dans un autre emplacement. Après avoir réglé ANT_HOME="/Applications/eclipse/plugins/orig.apache.ant_1.8.3.v201301120609"cela a fonctionné!
Michel
14

J'ai rencontré le même problème en essayant d'utiliser Cordova. Il s'avère que j'avais déjà du breuvage, essayez which brew, mais c'était obsolète. Donc, je devais d'abord le mettre à jour:

  1. Mettre à jour l'infusion: brew update
  2. Installez Apache Ant: brew install ant
utilisateur1
la source
7

Dans mon cas, j'ai déjà installé macport. J'ai simplement mis à jour mon macport:

sudo port selfupdate

sudo port upgrade outdated

Ensuite, installez apache-ant:

sudo port install apache-ant

Enfin, j'ajoute ant à ma liste d'alias dans mon .bash_profile:

alias ant='/opt/local/bin/ant'

Alors vous êtes prêt.

Chevalier
la source
3

Pour OSX, votre chemin doit inclure /Users/yourusername

leur exemple: /Development/adt-bundle/sdk/platform-tools
doit être: /Users/yourusername/Development/adt-bundle/sdk/platform-tools

K00kykelly
la source