cordova平台在安装Android目标时添加android无法正常工作

时间:2013-12-02 08:28:40

标签: android windows cordova

当我想在我的phoneGap应用程序中添加一个android平台时,我遇到了问题。 当我执行命令cordova platform add android:

时,我在CLI中收到此消息

Checking Android requirements... (Error: An error occurred while listing Android targets)

我已经尝试在路径变量中添加我的android sdk位置。

请帮帮我! :d

我在Windows 7 64位上工作,我使用android SDK安装android API 17,18和19。 我在3.2 phoneGap版本。

12 个答案:

答案 0 :(得分:167)

要工作,此cordova命令需要使用位于sdk/tools目录中的某些程序。您还需要安装 apache ant

然后,您必须将这些目录添加到PATH系统变量中:

<强>背景

  • 我们假设您已将Android SDK安装到c:\sdk\android目录
  • 您已将 Apache ant 安装到c:\tools\apache-ant目录

然后你必须创建两个系统变量:

  1. ANDROID_HOME c:\sdk\android
  2. ANT_HOME c:\tools\apache-ant
  3. 最后,您必须修改PATH变量并将这两个变量添加到PATH'值的末尾:

    ;%PATH%\tools;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools
    

    注意:对于那些使用Linux的人来说,指令略有不同。

    提供更多文档here

答案 1 :(得分:42)

对于那些选择的人,谁更喜欢Linux开发环境

要求

首先,您需要一些东西才能开始。它们是:Android SDKApache Ant。当然,您需要安装Java SDK(JDK)。

要让Android SDK适用于所有用户,您需要修改/etc/environment文件,然后重新启动PC。但如果你不想那么难 - 请跟我来,把自己想象成唯一的PC用户。并使用/home/YOUR_USERNAME/.bashrc文件进行编辑。

让我们记住你的家乡路径,以防止进一步长线。将此添加到/home/YOUR_USERNAME/.bashrc

export HOME="/home/YOUR_USERNAME"

当我们想说“$HOME”时,我们会使用/home/YOUR_USERNAME directory表示法。

设置Android SDK

下载Android SDK存档并将其解压缩到某处。让我们说,你的主目录$HOME/adt-bundle/

将这些行添加到$HOME/.bashrc

export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"

设置Ant

与Android SDK一样,下载档案并将其解压缩到您的主目录。然后将这些内容添加到.bashrc

export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"

我已通过apt-get安装了一个,因此这不会影响我的.bashrc

应用更改

要使这些更改生效,您应该在新的终端窗口中工作(在>更改后打开),或运行source ~/.bashrc以在当前终端窗口中进行更改。< / p>

结束

最后,你会得到:

  1. 主目录中的两个目录 - antandroid-bundle
  2. 添加到.bashrc

    的几行
    export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
    export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
    export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
    
    export ANT_HOME="$HOME/ant"
    export PATH="$PATH:$ANT_HOME/bin"
    

答案 2 :(得分:21)

运行&#34; android&#34;从adt \ sdk \ tools文件夹中输入命令并安装最新的工具和SDK。还要确保您的PATH具有正确的变量。

为此,您需要安装ANT,安装JAVA JDK和Android SDK

JAVA_HOME(C:\ Program Files \ Java \ jdk)

ANT_HOME({ant location} \ apache \ apache-ant)

ANDROID_HOME({android sdk location} \ android-sdk)

将这些添加到您的PATH变量,例如%ANT_HOME%/ bin;%ANDROID_HOME%\ tools;%ANDROID_HOME%\ platform-tools;%JAVA_HOME%\ bin

关闭并重新打开cmd并再次运行命令。

PhoneGap/Cordova Android Development

类似

答案 3 :(得分:4)

我不确定这是不是你的问题,但是当cordova库缓存被腐蚀的东西污染时,我遇到了类似的错误。要修复它,您只需删除cordova缓存,它将在您下次使用'cordova'时自动重新填充。

在OS X上,此目录为〜/ .cordova。在Windows上,我认为你的用户主目录中仍然是.cordova。

答案 4 :(得分:4)

答案是&#34;以上所有&#34;。但是,如上所述,环境变量也可以这样做:

C:\ Users {YOUR_NAME} .cordova \ lib \ android \ cordova \ 3.5.0 \ framework编辑project.properties文件并将target = android-19更改为target = android-20。

可能需要更改android sdk的下一个版本,直到这个小问题得到解决。

答案 5 :(得分:3)

即使路径变量完全按照说明设置,我也遇到了同样的问题。经过多个文件后我终于解决了。对我来说(Windows 7企业版64位)我不得不从&#34; C:\ Users \ .cordova \修改 check_reqs.js create.js lib \ android \ cordova \ 3.5.0 \ bin \ lib \&#34; 文件夹包含android.bat的绝对路径。我的android SDK在&#34; C:\ Android \ android-sdk&#34;下。

在check_reqs.js我修改了

child_process.exec('android list targets', function(err, stdout, stderr) {

child_process.exec('C:\\Android\\android-sdk\\tools\\android.bat list targets', function(err, stdout, stderr) {

在create.js中我修改了语句

return exec('android update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

return exec('C:\\Android\\android-sdk\\tools\\android.bat update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

另外不要忘记那些双重&#34; \\&#34;在绝对路径

答案 6 :(得分:2)

经过长时间的斗争,在完成所有上述建议之后,我越来越绝望,我只是以管理员的身份打开我的cmd。有效。我想在得到这台电脑之前我只是习惯了“sudo”。

答案 7 :(得分:2)

对于那些遇到过这个问题的人,我添加一些额外的东西可能会有所帮助,在我的情况下已经正确配置了所有变量,这仍然无法添加Android平台,我做的是禁用我的avast防病毒和粉扑!一切顺利进行,发生的事情是防病毒软件阻止了平台的创建。

对我来说同样重要的是重启电脑。 ;)

问候。

答案 8 :(得分:1)

我注意到了Cygwin / Windows 7的问题。问题源于Cygwin和MS-DOS shell处理.bat文件的方式略有不同。

在“添加平台”期间,cordova调用“android”:

C:\Users\xxx\.cordova\lib\android\cordova\3.4.0\bin\lib\check_reqs.js

它称之为'android list targets'(第73行)

“android”应解析为/xx/android-sdk/tools/android.bat或xx:\ android-sdk \ tools \ android.bat。 (事实上​​它确实如此,我可以在MS-DOS命令shell上运行“android” - 但不能在Cygwin shell中运行。我需要添加“.bat”。)

没有“.bat”的“android”在Cygwin shell中失败,因为android.exe不存在(只有.bat)。更改第73行以调用'android.bat列表目标'将解决您的问题(或提供合理的错误消息)。

另一个解决方法是在MS-DOS shell中运行cordova而不是Cygwin shell。

答案 9 :(得分:0)

我们在这里有一个解决方案列表,所以我添加了一个。在我尝试之前,这对我来说并不清楚。您应该将%ANT_HOME%\ bin;%ANDROID_HOME%\ tools;%ANDROID_HOME%\ platform-tools添加到USER PATH变量,而不是系统1。系统PATH变量将自动连接USER PATH变量并将变量转换为其值。希望能帮到别人。 附:我的操作系统是Win 7x64

答案 10 :(得分:0)

这个问题通常是因为没有为Android SDK设置PATH变量。

export HOME="/home/yourname"
export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"

答案 11 :(得分:0)

接受的答案很好而且非常重要。

我遇到了另一个页面,其中有很好的屏幕截图解释。

您可以参考http://bealers.com/2014/06/phonegap-android-development-environment-for-windows/