在使用PhoneGap/Cordova为Android构建时,在Mac OS X 10.9 Mavericks上执行命令'ant'时出错。

139

今天我尝试在Mac OS X Mavericks上使用PhoneGap/Cordova。构建iOS应用程序非常顺利,但构建Android应用程序需要进行一些猜测。

我通过Android SDK Manager安装了Android 4.2.2(由于不兼容较新版本,我必须使用旧的API v17),为SDK的platform-toolstools添加了PATH环境变量,以为自己已经准备好运行命令了:

phonegap run android

然而,我得到了以下错误:

[phonegap] detecting Android SDK environment...
[phonegap] using the local environment
[phonegap] adding the Android platform...
<b>[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.</b>

3
我也遇到了同样的情况... 通过brew安装解决了它! - Sebastian
我进入了/bin文件夹,但仍然遇到了相同的“命令未找到”问题。使用brew进行安装后问题得以解决,但我仍然不明白为什么之前它不能正常工作。如果我从bin文件夹运行ant -v,则无需设置环境变量,这太奇怪了... - LoveMeow
7个回答

361

错误信息证明了Apache Ant不再在Mac OS X Mavericks的路径中。

绝对可靠的解决方案:

  1. 在终端中执行以下命令下载并安装Homebrew:

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

  2. 通过Homebrew安装Apache Ant,执行命令:

    brew install ant

重新运行PhoneGap构建即可成功编译和安装Android应用程序。


6
Ant现在已经加入Homebrew-core中。只需要使用brew install ant即可安装。 - meaku
3
命令更新:ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go/install)" (该命令用于在终端上安装Homebrew软件包管理器。) - Felix
1
@CharanGiri:看起来你是通过代理服务器连接到互联网的。如果是这样,请尝试使用直接的互联网连接重新执行该命令。 - Mobiletainment
1
@Mobiletainment 当我执行brew install ant时,出现错误:curl: (22)请求的URL返回错误:404 Not Found 错误:下载失败:http://www.gtlib.gatech.edu/pub/apache/ant/binaries/apache-ant-1.9.2-bin.tar.gz看起来文件不存在?我需要更新brew吗? - CR47
10
如果你已经安装了Homebrew,请不要忘记在使用前运行brew update,以确保更新到最新版本。 - Christos Hrousis
显示剩余9条评论

45

您可以通过MacPorts或Homebrew安装ANT。

但是,如果您不想使用第三方软件包管理器,可以通过从Apache ANT网站下载二进制发行版并将其添加到系统PATH来解决问题。


例如,在Mountain Lion中,~/.bash_profile~/.bashrc 中我的路径设置如下:

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

apache-ant-1.9.2-bin.tar.bz2 解压后,我将结果目录移动到 /usr/share/ 并将其重命名为 ant

问题就这么简单地解决了。


注意 不要忘记运行 sudo chown -R root:wheel /usr/share/ant


我做了类似的事情,因为我不使用homebrew或macports,在我的电脑上,我也没有任何与之相关的路径。我下载了二进制版本,解压缩并在/usr/local中创建了一个名为ant的文件夹,然后将bin和lib文件夹从解压缩的二进制文件复制到/usr/local/ant中,之后将/usr/local/ant/bin添加到您的路径中,重新启动终端,一切都很完美,只需按照Coyote所说的做即可,您将很快拥有phonegap CLI。 - Robert-W
1
这应该是被接受的答案。简洁明了。安装你所需的内容。只需要2分钟安装就可以使用Apache Ant。 - Michel

28
作为homebrew的替代方案,您可以下载并安装macports。一旦您拥有了macports,您可以使用以下命令:sudo port install apache-ant

1
@Goaler444:您是否使用的是旧版本的MacPorts?尝试运行port search ant,在其中查找Apache Ant。 - John Mark
是的,就是这样,通过输入“sudo port -v selfupdate”更新端口,它就可以工作了。谢谢 :) - Goaler444
@JohnMark 我还是遇到了同样的错误,请帮忙。我按照你提到的步骤进行了操作,我需要安装其他的东西吗? - Charan Giri
你的PATH变量中是否包含了ant?如果在终端中输入which ant命令,会有任何输出吗? - John Mark
@JohnMark 谢谢您的回复,当我输入 which ant 时,我得到了 "/usr/local/bin/ant"。 - Charan Giri

21

不需要端口和brew!因为您有Android SDK包。

1. 编辑您的.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

制作可执行的Ant命令

chmod 770 [your ANT_HOME/bin/ant]

如果您看到下面的消息,则表示测试成功:.3 test if you see below message. that's success!

命令行执行:ant

构建文件:build.xml不存在!

构建失败


我的Eclipse安装在另一个位置。在设置了ANT_HOME="/Applications/eclipse/plugins/orig.apache.ant_1.8.3.v201301120609"之后,它可以工作了! - Michel

14

我在尝试使用Cordova时遇到了同样的问题。结果发现我已经安装了brew,可以通过 which brew 命令查看,但它已经过时了。因此,我首先需要更新它:

  1. 更新brew: brew update
  2. 安装Apache Ant: brew install ant

7

在我的情况下,我已经安装了macport。我只需要更新我的macport:

sudo port selfupdate

sudo port upgrade outdated

然后安装apache-ant:

sudo port install apache-ant

最后,我将ant添加到我的.bash_profile别名列表中:
alias ant='/opt/local/bin/ant'

那么,你已经准备好了。

3

对于OSX,您的路径需要包括/Users/yourusername

示例:/Development/adt-bundle/sdk/platform-tools
应该是:/Users/yourusername/Development/adt-bundle/sdk/platform-tools


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接