在使用PhoneGap / Cordova构buildAndroid时,在Mac OS X 10.9 Mavericks上执行命令“ant”时出错
今天,我用Mac OS X Mavericks尝试了PhoneGap / Cordova。 为iOS构build得很好,但为Android构build并非没有任何猜测。
我通过Android SDK Manager安装了Android 4.2.2(由于它与新版本不兼容,我不得不使用旧的API v17 ),为SDK的platform-tools
和tools
添加了PATH environment variables
,并认为我已经准备好了通过运行命令起飞:
phonegap run android
不过,我得到了以下错误:
[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.
错误消息被certificate是正确的,因为Apache Ant不再是Mac OS X Mavericks的path。
防弹解决scheme:
-
通过在terminal执行以下命令下载并安装Homebrew:
ruby -e“$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install )”
-
通过执行,通过Homebrew安装Apache Ant
brew安装ant
再次运行PhoneGap构build,它应该成功编译和安装您的Android应用程序。
你可以通过macports或homebrew安装ANT。
但是如果你不想使用第三方软件包pipe理器,那么可以通过从apache ANT网站下载二进制版本并将二进制文件添加到系统PATH来修复问题。
例如,在Mountain Lion上,在~/.bash_profile
和~/.bashrc
我的path是这样设置的:
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
作为自制软件的替代品,你可以下载并安装macports 。 一旦你有macports,你可以使用:
sudo port install apache-ant
它不需要端口和酿造! 因为你有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
.2制作可执行的ant命令
chmod 770 [your ANT_HOME/bin/ant]
.3testing你是否看到下面的消息。 这就是成功!
命令行执行:ant
Buildfile:build.xml不存在!
生成失败
尝试使用Cordova时遇到同样的问题。 事实certificate,我已经酿造过,尝试过which brew
,但已经过时了。 所以,我必须先更新它:
- 更新brew:
brew update
- 安装Apache Ant:
brew install ant
就我而言,我已经安装了macport。 我只是更新我的macport:
sudo port selfupdate sudo port upgrade outdated
然后安装apache-ant:
sudo port install apache-ant
最后,我在我的.bash_profile
添加ant到我的别名列表中:
alias ant='/opt/local/bin/ant'
然后你们全都定了。
对于OSX,您的path需要包含/Users/yourusername
他们的例子: /Development/adt-bundle/sdk/platform-tools
需要是: /Users/yourusername/Development/adt-bundle/sdk/platform-tools