android - 尝试构建 ionic 应用程序并获取 ANDROID_HOME 消息

标签 android ubuntu build path ionic-framework

我正在尝试使用 ionic 构建一个初始应用程序,当我执行命令 sudo ionic build android 时,我收到消息:

felipe@felipe-K46CB:~/ionic/myFirstApp$ sudo ionic build android
Running command: /home/felipe/ionic/myFirstApp/hooks/after_prepare/010_add_platform_class.js /home/felipe/ionic/myFirstApp
add to body class: platform-android
Running command: /home/felipe/ionic/myFirstApp/platforms/android/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/felipe/ionic/myFirstApp/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/felipe/ionic/myFirstApp/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:134:23)
at ChildProcess.emit (events.js:110:17)
at maybeClose (child_process.js:1015:16)
at Process.ChildProcess._handle.onexit (child_process.js:1087:5)

我检查了我的 ANDROID_HOME 和 PATH 变量:

felipe@felipe-K46CB:~/ionic/myFirstApp$ echo $ANDROID_HOME
/home/felipe/andoid-sdk-linux
felipe@felipe-K46CB:~/ionic/myFirstApp$ echo $PATH
/home/felipe/andoid-sdk-linux/tools:/home/felipe/andoid-sdk-linux/platform-tools:/home/felipe/perl5/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games

如果我编写 sudo echo $ANDROID_HOMEsudo echo $PATH,我会得到相同的结果。这些信息位于 .bash_profile 和 .bashrc 文件中,但每当我尝试构建时,这条消息都会坚持显示。

有人可以帮助我吗?我看过有关此问题的其他帖子,但没有任何解决方案对我有帮助。除了尝试解决这个问题之外,还有谁能给我更多的想法吗?

最佳答案

我在我的 Linux 机器上构建时遇到了同样的问题。

此错误是由于您的普通用户(您登录的用户)和 super 用户(使用 sudo 访问的用户)的 ANDROID_HOME 不同,因为每个用户的 $PATHS 存储在不同的文件中。

即 .bash_profile 和 .bashrc 中的信息适用于您的用户,但是当您使用 sudo 时,它使用 super 用户的设置,因此找不到 $PATH 变量。

下面的链接有一个关于如何将它们添加到 super 用户的很好的答案指南: https://askubuntu.com/questions/128413/setting-the-path-so-it-applies-to-all-users-including-root-sudo

我自己更喜欢在构建时手动设置它们,即:

    sudo ANDROID_HOME=/home/etobb/eTobb/android-sdk-linux ionic run android

如果您使用 bash 脚本构建,则可以自由使用 $ANDROID_HOME。

关于android - 尝试构建 ionic 应用程序并获取 ANDROID_HOME 消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31666099/

相关文章:

ubuntu - 在 Ubuntu 16.04 上安装 ROS Kinetic 时出错

C++ boost 错误

xcode - Cocoa 框架内静态库和动态库之间的轻松转换

c++ - 如何建档?

android - 建筑物室内地图 - Android

android - 安排通知安卓

ubuntu - 更改 redis 转储的默认文件权限

python - 管道 JSON 到 mongoimport

android - 对话框在android中没有被解雇

java - 出现错误 "Unable to resolve dependency"的问题