我正在尝试使用 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_HOME
和 sudo 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/