无法构建 Cordova 项目,出现 PATH 错误。

9
在我的应用程序目录下运行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应用程序?

确保你的 shell 可以找到并执行 "android" 和 "adb"。 - csantanapr
4个回答

14

这个错误是由于您没有正确设置Android SDK路径引起的。首先,找到计算机中Android SDK文件夹的位置。在Android SDK文件夹内部,有一个名为“platform-tools”的文件夹。因此,您可以正确识别Android SDK文件夹。然后获取Android SDK文件夹的路径。现在打开终端并输入以下命令:

export ANDROID_HOME="your android-sdk path"

现在运行该项目。


8

你可能已经使用了“sudo”来添加Android平台。这个问题的快速解决方案是:

  1. 将platforms文件夹下所有文件夹/子文件夹的权限恢复为正确的权限。

  2. 使用sudo cordova platform remove android删除Android平台。

  3. 使用cordova platform add android添加Android平台,不要使用sudo!如果没有sudo出现错误,那么问题就在这里!永远不要使用sudo或者项目会出现这样的问题!

如果仍然有问题,那么您可能是使用sudo安装了Cordova,也有解决方法:
首先,我们必须为全局安装设置npm,以便我们可以在不使用sudo的情况下使用它。启用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

在此之后,您可以愉快地运行npm install -g cordova而无需使用sudo,并且不会遇到权限冲突。如果出现完全崩溃的情况,您只需要删除您的~/.node目录即可重新开始。

您还可以查看以下两个链接:


1
虽然这个链接可能回答了问题,但最好在此处包含答案的基本部分并提供参考链接。仅有链接的答案如果链接页面更改可能会变得无效。 - Dethariel
这正是我正在寻找的。 - TheJediCowboy
我已按照你的建议更新了答案。谢谢@Dethariel :) - molhamaleh

0
在终端中运行以下命令:
export PATH=${PATH}:/Users/Document/Android-sdk/tools:/Users/Documents/Android-sdk/platform-tools

-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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接