离子android构build错误 – 无法find“ANDROID_HOME”环境variables

我正在尝试在linux中为离子build立android,但是它向我展示了这样一个错误

[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/kumar/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/kumar/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) 

我已经在我的bashrc文件中添加了这个

 export ANT_HOME="/usr/bin/ant" export PATH="$PATH:$ANT_HOME/bin" export HOME="/home/kumar" export ANDROID_HOME="$HOME/android-sdk-linux/tools" export ANDROID_PLATFORM_TOOLS="$HOME/android-sdk-linux/platform-tools" export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH" 

我想我已经给了path,但我不知道为什么它显示我这个错误..请帮助….

Android Home应该是SDK的根文件夹。

 export ANDROID_HOME="$HOME/android-sdk-linux" 

编辑 :打开terminal并input这些命令。 (是的,在一个ternimal,而不是在bashrc文件)

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

然后在同一个terminal上inputandroid 。 如果已configuration,则可以使用此terminal的构build命令。 (这是一个临时解决scheme)

对于OSX

  • 进入〜/ .bash_profile添加:

     export ANDROID_HOME="/path/to/android-sdk-macosx" export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$PATH" 

    然后在terminal执行立即生效;

  • 进入/ etc / sudoers添加:(你可以使用console: sudo visudo

     Defaults env_keep += "ANDROID_HOME" 

    因为构build过程必须以sudo和Node的process.env获取各自的variables。

安装Ubuntu

  1. 仅下载Android Studio或SDK
  2. 安装
  3. 设置PATH

在我的情况下,Android和它的SDK默认情况下安装在:

 /root/Android/Sdk 

打开terminal并编辑〜/ .bashrc

 sudo su vim ~/.bashrc 

导出ANDROID_HOME并将包含二进制文件的文件夹添加到PATH中

 export ANDROID_HOME=/root/Android/Sdk PATH=$PATH:$ANDROID_HOME/tools PATH=$PATH:$ANDROID_HOME/platform-tools 

刷新你的PATH运行

 source ~/.bashrc 

ionic build android仍然失败,这可能是因为错误的SDK版本。 要安装正确的版本和图像从命令行运行android 。 既然它现在在你的PATH中,你应该可以从任何地方运行它。

案例:使用SO Windows,请尝试:

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

更多: http : //spring.io/guides/gs/android/

案例:你没有平台工具:

 cordova platforms list cordova platforms add <Your_platform, example: Android> 

下载android SDK http://developer.android.com/sdk/installing/index.html

您只能导出SDK文件夹的path。

export ANDROID_HOME="YOUR_PATH/sdk/"

上面的答案已经很好地解释了这个过程。 但是,如果将ANDROID_HOMEPATH添加到/home/username/.bashrc.zshrc ,并尝试使用sudo运行ionic命令,则可能会再次出现此错误。

原因是,它可能会在root用户的.zshrc文件中查找ANDROID_HOMEPATH ,而不是当前login的用户。 所以你不应该这样做,除非你在root用户的.bashrc.zshrc文件中添加这个。

运行sudo ionic run android作为根,因为这些环境variables不被持久化,我有这个问题。 通过运行sudo -E ionic run android修复。

Windows – 永久设置环境variables:

setx ANDROID_HOME“C:\ Program Files \ Android \ android-sdk”

要么

setx ANDROID_HOME“C:\ Program Files(x86)\ Android \ android-sdk”

你只需要像这样编辑你的configuration文件:

 sudo su vim ~/.profile 

并把它放在文件的末尾:

 export ANDROID_HOME=/home/(user name)/Android/Sdk export PATH=$PATH:/tools export PATH=$PATH:/platform-tools 

保存并closures该文件,然后执行:

 cd ~ source .profile 

现在如果你这样做:

 echo $ANDROID_HOME 

它应该告诉你这样的事情:

 /home/(user name)/Android/Sdk 

对于OSX

大教程在这里: https : //www.youtube.com/watch?v=kY22NSBwV_s

不需要做任何bash命令/符号链接:

  1. 安装Java 6运行时: https : //support.apple.com/kb/DL1572?locale = de_DE
  2. 安装Java JDK: http : //www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html

在我的情况:我已经把Android和Java的正确path,但仍然得到错误。

问题是我已经使用sudo命令添加了Android平台。 sudo ionic cordova platform android

解决我的问题:首先,我通过运行命令删除了平台android

sudo离子cordova平台rm android

然后添加Android平台再出来sudo ionic cordova platform add android但我得到权限的错误。

解决错误运行命令

sudo chmod -R 777 {您的项目path}

在我的情况下sudo chmod -R 777 ~/codebase/IonicProject然后运行命令

离子cordova平台添加android

要么

离子cordova运行android