【问题标题】:Cordova, getting Error while adding android platform on Ubuntu 14.04Cordova,在 Ubuntu 14.04 上添加 android 平台时出错
【发布时间】:2014-06-16 04:31:40
【问题描述】:

我安装了cordova,可以毫无问题地创建一个新项目。

但是在尝试添加 android 平台时出现以下错误:

sudo cordova platform add android
Running platform task...
Adding platform android
Creating android project...

/home/tushar/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:126
                    throw e;
                          ^
Error: An error occurred while listing Android targets
    at /home/tushar/.cordova/lib/android/cordova/3.5.0/bin/lib/check_reqs.js:87:29
    at _rejected (/home/tushar/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:808:24)
    at /home/tushar/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:834:30
    at Promise.when (/home/tushar/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:1079:31)
    at Promise.promise.promiseDispatch (/home/tushar/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:752:41)
    at /home/tushar/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:574:44
    at flush (/home/tushar/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:415:13)
Error: /home/tushar/.cordova/lib/android/cordova/3.5.0/bin/create: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:743:16)
    at Process.ChildProcess._handle.onexit (child_process.js:810:5)
Unable to add platform android. Please see console for more info.

我尝试了 stackoverflow 中的几乎所有解决方案,但没有一个能解决。 我在 ./bashrc 文件中添加了 android sdk、ant 等的路径,如下所示:

export HOME="/home/tushar"
export ANDROID_HOME="$HOME/Development/adt-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/Development/adt-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"

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

但我仍然遇到问题。

有什么建议吗???

更新

这些可能有助于调试:

$ node -v
v0.10.25

$ npm -v
1.3.10

$ cordova -v
3.5.0-0.2.4

$ android list targets
Available Android targets:
----------
id: 1 or "android-19"
     Name: Android 4.4.2
     Type: Platform
     API level: 19
     Revision: 3
     Skins: HVGA, WXGA800, WVGA800 (default), WQVGA432, WXGA800-7in, WXGA720, QVGA, WVGA854, WQVGA400, WSVGA
 Tag/ABIs : default/armeabi-v7a

【问题讨论】:

  • 下面链接中提到的这个解决方案为我解决了这个问题-stackoverflow.com/a/23981071/1084806
  • @AkashNidhiPS:正如我上面提到的,我已经导出了所需的路径。

标签: android cordova ant ionic-framework


【解决方案1】:

您的路径有问题: ANDROID_HOME 应该指向 sdk 文件夹,而不是 sdk/tools

同时添加指向 sdk/tools 的 ANDROID_TOOLS

总而言之,您需要: JAVA_HOME, ANT_HOME, ANDROID_HOME, ANDROID_PLATFORM_TOOLS, ANDROID_TOOLS, 并且可能 ANDROID_SDK_ROOT 也指向 sdk。

附:没有 sudo,是的。

【讨论】:

    【解决方案2】:

    我认为您不必以超级用户身份执行“cordova platform add android”。

    【讨论】:

      【解决方案3】:

      我整天都在为同样的问题苦苦挣扎。结果是我在导出路径变量时没有添加完整路径...

      我们小组中的一个“shell”手建议运行“pwd”来获取“当前工作目录”,然后给导出确切的路径......它工作了

      【讨论】:

        【解决方案4】:

        遇到了同样的问题。我的 PATH 是正确的。访问权限没有问题。 还注意到 adt-emulator 遇到了错误。

        最后,它缺少允许 adt(部分是 32 位)在 64 位 ubuntu 系统上运行的库。

        sudo apt-get install lib32z1 lib32z1-dev
        

        解决了这个问题,一切正常。

        希望这有助于为其他人解决此问题。

        【讨论】:

          【解决方案5】:

          在 LMDE 中遇到了完全相同的问题,正如 Ranunculus 所回答的那样,我直接在终端中添加了以下内容,并且成功了!

          export ANDROID_HOME="$HOME/android-sdk-linux"
          export ANDROID_TOOLS="$ANDROID_HOME/tools/"
          export ANDROID_PLATFORM_TOOLS="$ANDROID_HOME/platform-tools/"
          export JAVA_HOME="/usr/lib/jvm/java-7-oracle"
          export ANT_HOME="/usr/share/ant"
          export PATH="$JAVA_HOME:$ANT_HOME:$ANDROID_HOME:$ANDROID_TOOLS:$ANDROID_PLATFORM_TOOLS:$PATH"
          

          注意:无法评论 Ranunculus 的答案,因此将其发布为答案。

          【讨论】:

            【解决方案6】:

            我遇到了同样的问题(虽然在 Windows 上运行,但仍然值得您检查一下)并发现这是由于 bug in Ant 造成的。我的 Classpath 也以 " 结尾,我必须通过删除我的类路径变量中的 " 来解决这个问题。

            【讨论】:

              【解决方案7】:

              我在尝试添加多个配置时遇到了同样的问题,这些配置会产生冲突,还有一件事我发现当我在一个终端上更新路径并尝试在另一个终端上执行 Cordova 命令时我打开了多个终端我仍然得到同样的错误,所以我在第一个终端上尝试了 echo $PATH,它显示了更新的路径,但是在回显时另一个终端没有显示更新的路径,所以最后我打开了新终端并再次开始,是的,这次它可以工作,这种问题通常发生在windows,但我不确定在 Linux 上是否会发生同样的情况,但就我而言,我希望这可以帮助其他新手,现在我的 Cordova 和 ionic 命令都可以正常工作,这要感谢 SO 社区的支持和指导

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 2014-12-06
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2014-08-15
                • 1970-01-01
                相关资源
                最近更新 更多