【问题标题】:ANDROID_HOME is not set and "android" command not in your PATH. You must fulfill at least one of these conditions. in ubuntuANDROID_HOME 未设置且“android”命令不在您的 PATH 中。您必须至少满足其中一项条件。在ubuntu中
【发布时间】:2015-05-21 17:31:58
【问题描述】:

这是我的安卓主页和路径

manish@manish-Vostro-2520:~/hello$ echo $PATH

/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/lib/jvm/jdk1.7.0/bin:/home/manish/Android/Sdk/tools:/home/manish/Android/Sdk/platform-tools

manish@manish-Vostro-2520:~/hello$ $ANDROID_HOME

bash: /home/manish/Android/Sdk: Is a directory

但当我执行sudo cordova build 时,我仍然得到:

[Error: ANDROID_HOME is not set and "android" command not in your PATH. You must fulfill at least one of these conditions.]
ERROR building one of the platforms: Error: /home/manish/hello/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/manish/hello/platforms/android/cordova/build: Command failed with exit code 2
    at ChildProcess.whenDone (/usr/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)

这里是 ~/.bashrc 条目

#android path
export ANDROID_HOME=~/Android/Sdk
export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

【问题讨论】:

    标签: android ubuntu


    【解决方案1】:

    通过添加将以下代码添加到 .bashrc 文件中:

    export ANDROID_HOME=/home/manish/Android/Sdk
    export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platforms-tools
    

    请注意,现有 shell 不会设置此路径,因此建议在将它们添加到环境后重新启动您的 Linux 机器一次。

    【讨论】:

    • 或者简单地获取 bashrc 文件。无需采取严厉措施
    • 这与我的导出有何不同
    • 对,你之前没提过,所以我贴出来了。
    【解决方案2】:

    我相信这是因为您正在尝试以超级用户的身份进行构建。最好的答案是在构建时不要使用 sudo,而只需使用 cordova build。根据您设置节点的方式,这可能对您不起作用。

    或者,您可以修改位于/etc/bash.bashrc 的 bashrc:

    sudo -s 
    //login with superuser credentials
    //then use an editor to modify, or just append to the file echo "export ANDROID... >> etc/bash.bashrc
    vim /etc/bash.bashrc
    

    然后按照其他建议简单地添加:

    export ANDROID_HOME=/path/to/android/sdk
    export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platforms-tools
    

    【讨论】:

    • 如果我运行cordova build 我得到了这个cp: copyFileSync: could not write to dest file (code=EACCES):/home/manish/hello/platforms/android/res/xml/config.xml rm: could not remove file (code EACCES): /home/manish/hello/platforms/android/assets/www/cordova.js rm: could not remove file (code EACCES): /home/manish/hello/platforms/android/assets/www/cordova.js rm: could not remove file (code EACCES): /home/manish/hello/platforms/android/assets/www/cordova_plugins.js
    • 可能是因为您使用 sudo cordova create 创建了项目?想要对这些文件运行ls -l 并查看谁拥有它们?
    【解决方案3】:

    对于 Linux,请尝试以下命令行:

    export ANDROID_HOME=/< your installation location>/android-sdk-linux    
    export PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
    

    【讨论】:

      【解决方案4】:

      对于 Mac: 转到 Android Studio 并 configure/SDK Manager 获取 the Android SDK Location。 那么:

      export ANDROID_HOME=Android SDK location
      export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platforms-tools
      

      【讨论】:

        猜你喜欢
        • 2014-12-08
        • 1970-01-01
        • 1970-01-01
        • 2014-11-30
        • 1970-01-01
        • 2015-02-08
        • 2015-03-09
        • 2021-05-31
        • 2020-04-12
        相关资源
        最近更新 更多