android - 错误: Failed to find 'ANDROID_HOME' environment variable when building apk using ionic

标签 android linux ionic-framework

我正在尝试使用 ionic 框架构建 android apk。 当我输入以下命令 sudo ionic build android 时,出现以下错误 “错误:无法找到 'ANDROID_HOME' 环境变量。尝试手动设置它。 无法在“路径”中找到“android”命令。尝试更新您的“路径”以包含有效 SDK 目录的路径。 “

但是当我通过输入 "echo $ANDROID_HOME" 检查 ANDROID_HOME 变量时,我得到了有效的 SDK 路径(例如/home/ttnd/android-sdk-linux )。

在下面找到我包含在 bashrc 文件中的配置,

导出 ANDROID_HOME=/home/ttnd/android-sdk-linux
导出 PATH=${PATH}:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools

我已经检查了网络上所有可能的链接,但仍然无法找到问题。

最佳答案

问题是 sudo 命令的执行环境与调用环境不同。换句话说,您的环境变量不会被传入。

您可以通过在 sudo 命令中添加 -E 选项来解决此问题。使用该选项可能会存在一些安全问题,并且您的特定系统可能会阻止您使用它。以下是我的 sudo 手册页版本的简介:

The -E (preserve environment) option indicates to the security policy that the user wishes to preserve their existing environment variables. The security policy may return an error if the -E option is specified and the user does not have permission to preserve the environment.

解决这个问题的另一种方法是将环境变量包含在 sudo 命令中。像这样的事情:

sudo ANDROID_HOME=$ANDROID_HOME PATH=$PATH ionic build android

第三种方法是运行 sudo visudo 并添加您想要包含在 sudo 运行环境中的变量。

关于android - 错误: Failed to find 'ANDROID_HOME' environment variable when building apk using ionic,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39218922/

相关文章:

Linux:大文件与大量文件

c - 使用宏定义两个局部变量但具有相同的地址

angularjs - 您可以将 Bootstrap 添加到 Ionic 应用程序吗?

android - 如何裁剪 Android 中已知 URI 的图像?

java - 当按下 AlertDialog 正按钮时 RecyclerView 是否刷新

linux 命令 "file"显示 "for GNU/Linux 2.6.24"

javascript - 错误 : undefined is not an object (evaluating '$cordovaBarcodeScanner.scan' )

angular - 如何将微调器与 *ngFor async 一起使用

android - React-Native Linking.addEventListener ('url' , this._handleOpenURL);不在听

java - 在 Android/Java 中更改 XML 值