android - linux 上的 'ANDROID_HOME' 环境变量,带有 cordova 未定义的 nodejs

标签 android linux node.js cordova

Cordova 安装正确,Android SDK 也安装正确。

# echo $ANDROID_HOME
/home/user/android-sdk-linux

但是

# cordova build android --verbose
Error: CordovaError: 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.
at /home/user/myApp/platforms/android/cordova/lib/check_reqs.js:225:8
at _fulfilled (/home/user/myApp/platforms/android/cordova/node_modules/q/q.js:834:54)
at self.promiseDispatch.done (/home/user/myApp/platforms/android/cordova/node_modules/q/q.js:863:30)
at Promise.promise.promiseDispatch (/home/user/myApp/platforms/android/cordova/node_modules/q/q.js:796:13)
at /home/user/myApp/platforms/android/cordova/node_modules/q/q.js:857:14
at runSingle (/home/user/myApp/platforms/android/cordova/node_modules/q/q.js:137:13)
at flush (/home/user/myApp/platforms/android/cordova/node_modules/q/q.js:125:13)
at process._tickCallback (node.js:355:11)
at Function.Module.runMain (module.js:503:11)
at startup (node.js:129:16)

好的...通过nodejs检查变量:

# node
> process.env['ANDROID_HOME']
'~/android-sdk-linux'

一切似乎都很好... 好的...通过添加下一行来编辑文件“home/user/myApp/platforms/android/cordova/lib/check_reqs.js”(来自上面的错误):

if (!process.env['ANDROID_HOME']) {
  console.log(process.env['ANDROID_HOME']);
  throw new CordovaError('Failed to find \'ANDROID_HOME\' environment variable. Try setting setting it manually.\n' +
            'Failed to find \'android\' command in your \'PATH\'. Try update your \'PATH\' to include path to valid SDK directory.');
}

结果是:

# cordova build android --verbose
Executing "before_build"  hook for all plugins.
...
Executing "after_prepare"  hook for all plugins.
Executing "before_compile"  hook for all plugins.
**undefined**
Error: CordovaError: Failed to find 'ANDROID_HOME' environment variable. Try setting setting it manually.

如何用nodejs和cordova解决这个问题?

最佳答案

选项 1

window

右击我的电脑->属性->高级系统设置->环境变量

现在将系统变量的路径编辑为;/yourSdkHome/tools;/youSdkHome/platform-tools。

选项 2

在 Windows 机器上,打开命令提示符并逐条输入这些命令

set ANDROID_HOME=C:\android-sdk-windows
set PATH=%PATH%;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

在 MAC Machine 中,打开 Terminal 然后将这些一一输入

export ANDROID_HOME=//android-sdk-macosx export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

注意 - C:\android-sdk-windows 应替换为您机器中的 Android SDK 路径。

应该替换成你机器上Android SDK的路径。

例子

在 MAC 机器上,如果安装位置是 ~/adt-bundle-mac-x86_64/sdk

第一行应该是

export ANDROID_HOME=~/adt-bundle-mac-x86_64/sdk

关于android - linux 上的 'ANDROID_HOME' 环境变量,带有 cordova 未定义的 nodejs,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36264108/

相关文章:

node.js - 使用 node_redis 在 node.js 应用程序中使用 redis 检查缓存键是否存在

api - 如何从服务器和客户端角度使用3Scale的 `authrep`函数?

android - 屏幕旋转期间处理状态变化的最佳实践

android - 在 AsyncTask 期间禁用按钮

c - 用c编写shell时出现问题

linux - 如何使用 spi-loopback-test linux 内核模块?

linux - 仅将指定数据合并到单个 csv 文件中

java.lang.RuntimeException : Unable to destroy activity {com. xxxxx/com.xxxxx.MapsActivity}:

Android ViewFlipper 不翻转

javascript - Gulp 生成文件夹中所有文件的index.js