当前位置: 首页>>技术问答>>正文


cordova ubuntu:列出Android目标时出错

, ,

问题描述

我正在尝试将android平台添加到我的cordova项目,虽然我收到错误:

$ cordova platform add android -d
cordova library for "android" already exists. No need to download. Continuing.
Checking if platform "android" passes minimum requirements...
Checking Android requirements...
cordova library for "android" already exists. No need to download. Continuing.
Error: An error occurred while listing Android targets
    at /home/jasonshark/.cordova/lib/android/cordova/3.2.0/bin/lib/check_reqs.js:83:29
    at _rejected (/home/jasonshark/.cordova/lib/android/cordova/3.2.0/bin/node_modules/q/q.js:808:24)
    at /home/jasonshark/.cordova/lib/android/cordova/3.2.0/bin/node_modules/q/q.js:834:30
    at Promise.when (/home/jasonshark/.cordova/lib/android/cordova/3.2.0/bin/node_modules/q/q.js:1079:31)
    at Promise.promise.promiseDispatch (/home/jasonshark/.cordova/lib/android/cordova/3.2.0/bin/node_modules/q/q.js:752:41)
    at /home/jasonshark/.cordova/lib/android/cordova/3.2.0/bin/node_modules/q/q.js:574:44
    at flush (/home/jasonshark/.cordova/lib/android/cordova/3.2.0/bin/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:415:13)

如果没有-d,它将是:

Checking Android requirements...
[Error: An error occurred while listing Android targets]

我不确定我缺少什么配置。在我的~/.bashrc文件中,我有:

### Java
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-i386

export ANDROID_HOME=~/Code/adt-bundle-linux-x86-20131030/sdk/tools
export ANDROID_PLATFORM_TOOLS=~/Code/adt-bundle-linux-x86-20131030/sdk/platform-tools
export PATH=$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH 

我安装了蚂蚁:

$ ant -version
Apache Ant(TM) version 1.8.2 compiled on December 3 2011

少了什么东西?为什么在尝试将android平台添加到cordova项目时会出现错误An error occurred while listing Android targets

最佳解决办法

Cordova有一个脚本来检查是否存在所有依赖项。当您运行cordova platform add android时调用,但不幸的是,它的输出在失败时不显示。

您可以尝试手动运行它,它应该是$home/.cordova/lib/android/cordova/3.5.0/bin/check_reqs

一切都很好的正常输出是“看起来你的环境完全支持cordova-android开发!”,或者它应该显示一个关于缺少什么的明确信息。

也许你的问题是你没有在android sdk管理器中安装API 19的SDK平台(cordova 3.3或3.5使用目标sdk 19)。

更新:Cordova 3.3或3.5仅适用于SDK 19(Android 4.4.2)。错误日志没有明确提到它正在寻找的平台版本。通常错误消息是:

Unable to add platform android. Please see console for more info.

要么

[Error: An error occurred while listing Android targets]

android(sdk /tools)不在路径中时,也会发生这种情况。如果check-script打印出正确的错误信息,我会很高兴。 BTW,created a PR for them

次佳解决办法

在.bashrc中尝试添加

export ANT_HOME="/usr/bin/ant"
export PATH="$PATH:$ANT_HOME/bin"
export HOME="/home/username"
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 PATH=${PATH}:~/dev/adt-bundle-linux-x86_64-20140321/sdk/tools
export PATH=${PATH}:~/dev/adt-bundle-linux-x86_64-20140321/sdk/platform-tools

(记得用你自己的sdk路径替换)

如果这不起作用,请尝试更新sdk

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/7007.html,未经允许,请勿转载。