cordova ubuntu:列出Android目标时出错

时间:2014-02-11 10:43:19

标签: android ubuntu cordova

我正在尝试将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

4 个答案:

答案 0 :(得分:18)

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打印出正确的错误消息,我会很高兴。顺便说一句,created a PR for them

答案 1 :(得分:2)

<。>在.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

答案 2 :(得分:1)

请参阅问题

An error occurred while listing Android targets

和链接     developer.android.com/tools/devices/managing-avds-cmdline.html

最有可能是指向这个android的路径变量是错误的。我曾使用%ANDROID_HOME%作为变量并将其缩放为路径变量%ANDROID_HOME%\SDK\TOOLS.此方法不起作用。通过直接指向工具和平台工具进行实验解决。

基于我的所作所为,它对我有用。希望你能解决问题

即使在Cordova check_reqs正常工作而没有提供任何错误之后,我也遇到了问题。但是在添加新平台时,仍然会出现此错误。上述方法有点解决了我的问题。

答案 3 :(得分:1)

我解决了为我的app文件夹提供完全权限的问题

$ sudo chmod -R 777 myApp

之后,再试一次

$ cd myApp
$ ionic platform android