我正在尝试运行ionic cordova build --release android
,但这会收到此错误。:
CordovaError: Failed to find 'ANDROID_HOME' environment variable. Try setting it manually.
Failed to find 'android' command in your 'PATH'. Try update your 'PATH' to include path to valid SDK directory.
我正在使用Windows 10,但我正在使用linux子系统(所以我正在做所有的linux命令等等)。
我进入了我的系统变量并输入了适用于Windows的Android SDK内容,如下所示:
但是当我回到bash / shell时,当我echo $ANDROID_HOME
时,它没有显示我设置的路径。我应该安装适用于Linux的Android SDK并指出它吗?或者有一点我可以将这个ANDROID_HOME路径指向我的C:/驱动器,因为当我在Linux子系统上时我认为没有C:/驱动器
答案 0 :(得分:7)
这是因为linux子系统环境变量与Windows环境变量是分开的,但默认情况下从创建者更新开始共享的PATH
除外。
在这种情况下,您必须将ANDROID_HOME
添加到linux环境变量中。一种方法是将其添加到~/.bashrc
nano ~/.bashrc
将以下代码添加到文件末尾
export ANDROID_HOME="/mnt/c/Users/<user_name>/AppData/Local/Android/sdk"
export PATH="$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools"
保存,退出并运行source
source ~/.bashrc
现在你将能够从linux子系统运行android sdk工具,尽管有一个警告,你必须为每个工具添加.exe
。例如:
adb --> won't work
adb.exe --> works
答案 1 :(得分:1)
所以我在这方面写了一个很大的答案,由于某些原因我无法找到它。我不知道它是否没有发布或发生了什么。所以重写我之前写的内容
Windows和Windows Sub System Linux默认不共享任何环境变量。但是有一种方法可以在两者之间自动共享变量,如下文
中所述默认情况下,您的c:\
会映射到/mnt/c
。现在你有两个选择
外壳环境
您可以更新~/.bashrc
或~/.bash_profile
(无论您使用哪个)并导出变量
export ANDROID_HOME="/mnt/c/Android/sdk"
export PATH="$PATH:$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools"
共享环境
Windows创建了一个名为WSLENV
的特殊环境变量。此环境变量可用于在两个环境之间共享变量,还可以自动转换路径。在我们潜入一些特殊标志之前
现在,如果你设置如下的环境
WSLENV=ANDROID_HOME/p
上面说ANDROID_HOME
应该在WSL和Windows之间共享,/p
表示它应该自动共享。建议这样做是为了让所有内容保持同步