【问题标题】:'ANDROID_HOME' environment variable on linux with nodejs undefined by cordovalinux上的'ANDROID_HOME'环境变量,nodejs未由cordova定义
【发布时间】:2016-03-28 14:11:44
【问题描述】:

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如何解决这个问题?

【问题讨论】:

    标签: android linux node.js cordova


    【解决方案1】:

    选项 1

    适用于窗户

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

    现在将系统变量上的路径编辑为 ;/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机器中,打开终端,一一输入

    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
    

    【讨论】:

    • 这一切都完成了,nodejs中的问题! ANDROID_HOME 变量在系统中定义,但不能用 js 文件读取。
    猜你喜欢
    • 2020-07-04
    • 1970-01-01
    • 1970-01-01
    • 2015-11-23
    • 1970-01-01
    • 2017-09-27
    • 2020-11-12
    • 1970-01-01
    • 2016-07-11
    相关资源
    最近更新 更多