无法构建cordova项目,PATH错误

时间:2015-09-06 07:29:55

标签: android linux cordova

从我的app目录运行cordova build时出现以下错误

[Error: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually. Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory.] ERROR building one of the platforms: Error: /home/shakir/Documents/myapp/platforms/android/cordova/build: Command failed with exit code 2 You may not have the required environment or OS to build this project Error: /home/shakir/Documents/myapp/platforms/android/cordova/build: Command failed with exit code 2 at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:139: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)

我已将~/.profile文件设置如下

export ANDROID_HOME="/usr/local/android-sdk-linux"

export ANDROID_PLATFORM_TOOLS="/usr/local/android-sdk-linux/platform-tools"

export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_PLATFORM_TOOLS

echo ANDROID_HOME给出以下结果

/usr/local/android-sdk-linux

我使用的是Ubuntu 14.04。如何解决这个问题并构建cordova应用程序?

4 个答案:

答案 0 :(得分:13)

发生此错误,因为您未正确设置Android sdk路径。  首先,找到android-sdk文件夹在您计算机中的位置。在android-sdk文件夹中,有一个名为“platform-tools”的文件夹。所以你可以正确识别android-sdk文件夹。然后获取android-sdk文件夹的路径。现在打开终端并输入以下命令,

export ANDROID_HOME="your android-sdk path"

现在运行该项目。

答案 1 :(得分:6)

你可能已经习惯了" sudo"添加Android平台..这个问题的快速解决方案是:

  1. 将权限文件夹权限恢复到平台文件夹的所有文件夹/子文件夹

  2. 使用sudo cordova platform remove android

  3. 删除Android平台
  4. 使用cordova platform add android添加Android平台不要使用SUDO!如果没有sudo的错误那就是问题所在!永远不要使用sudo的东西,否则项目会有这样的问题!

  5. 如果你仍有问题,那么你可能已经使用sudo安装了cordova,也有一个解决方案:
    首先,我们必须为全局安装设置npm,这样我们就可以在没有sudo的情况下使用它,在不破坏$ HOME的情况下,让npm全局安装包的首选方法是设置本地节点前缀。这就像跑步一样简单:

    echo prefix = ~/.node >> ~/.npmrc
    echo 'export PATH=$HOME/.node/bin:$PATH' >> ~/.bashrc 
    . ~/.bashrc    
    

    然后跑步:

    npm install -g cordova
    

    可能导致:

    Error: EACCES, permission denied '/home/yourusername/.config/configstore/update-notifier-cordova.json'
    

    修复它:

    sudo chown yourusername:yourusername /home/yourusername/.config/configstore/update-notifier-cordova.json
    

    之后,你可以愉快地运行没有sudo的npm install -g cordova,而不会遇到权限冲突,如果某些东西完全被破坏而你想从头开始,你需要做的就是删除你的〜/ .node目录

    希望这有帮助!

    您还可以查看以下两个链接:来源1& 2

答案 2 :(得分:0)

在终端中运行以下命令:

  

导出   PATH = $ {PATH}:/ Users / Document / Android-sdk / tools:/ Users / Documents / Android-sdk / platform-tools

答案 3 :(得分:-1)

您可能也会收到此错误

Error: EACCES: permission denied, open '/home/yourusername/.cordova/lib/npm_cache/cordova-android/5.1.1/package/.npmignore'

修复它使用此命令

sudo chown -R  yourusername:yourusername /home/{username}/.cordova/lib/npm_cache/cordova-android/5.1.1/package