ANDROID_HOME未设置,“android”命令不在PATH Phonegap中
我已经安装了Android束,我已经在.bashrc文件中configuration了一切,甚至当我说android在命令行..我正在android的经理..但是当我说离子平台添加android我总是得到错误为“错误:ANDROID_HOME没有设置,“android”命令不在你的PATH中,你必须至less满足这些条件之一。 。 我尝试了很多方法,但问题不固定。
我的平台:
Ubuntu 14.04 64位
.bashrc文件:
export HOME="/home/system" export ANDROID_HOME="$HOME/adt-bundle-linux-x86_64-20140702/sdk/tools" export ANDROID_PLATFORM_TOOLS="$HOME/adt-bundle-linux-x86_64-20140702/sdk/platform-tools" export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH" export JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64" export ANT_HOME="/usr/share/ant" export PATH="$ANT_HOME/bin:$PATH" export ANDROID_HOME="/home/system/adt-bundle-linux-x86_64-20140702/sdk/tools"
执行时出错:
system@system-H81M-S1:/usr/share/nginx/www/myApp# ionic platform add android npm http GET https://registry.npmjs.org/cordova-android/3.6.3 npm http 200 https://registry.npmjs.org/cordova-android/3.6.3 npm http GET https://registry.npmjs.org/cordova-android/-/cordova-android-3.6.3.tgz npm http 200 https://registry.npmjs.org/cordova-android/-/cordova-android-3.6.3.tgz Creating android project... /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:126 throw e; ^ Error: ANDROID_HOME is not set and "android" command not in your PATH. You must fulfill at least one of these conditions. at /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/lib/check_reqs.js:158:19 at _fulfilled (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:798:54) at self.promiseDispatch.done (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:827:30) at Promise.promise.promiseDispatch (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:760:13) at /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:821:14 at flush (/system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/node_modules/q/q.js:108:17) at process._tickCallback (node.js:419:13) at Function.Module.runMain (module.js:499:11) at startup (node.js:119:16) at node.js:906:3 Error: /system/.cordova/lib/npm_cache/cordova-android/3.6.3/package/bin/ create: Command failed with exit code 8 at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/ cordova-lib/src/cordova/superspawn.js:135:23) at ChildProcess.emit (events.js:98:17) at maybeClose (child_process.js:756:16) at Process.ChildProcess._handle.onexit (child_process.js:823:5)
我可以知道如何解决这个错误
我面临同样的问题,解决了。
我认为这是最新的cordova与最新的Android的兼容性的问题。 以及你有问题的Android主path。
在.bashrc文件中
export HOME="/home/indranil" export ANDROID_HOME="$HOME/software/adt-bundle-linux-x86_64-20140702/sdk" export PATH="$HOME/software/adt-bundle-linux-x86_64-20140702/sdk/tools:$ANDROID_HOME/platform_tools:$PATH"
如果您使用的是旧版本,请尝试下载最新的android SDK。 并从您的Androidpipe理器下载Android 4.4.2(API 19)。
您可以使用最新的cordova(4.0.0),但如果问题仍然存在,请使用cordova(3.5.0-0.2.7),但是如果要升级或降级cordova,请使用以下命令删除现有的cordova: –
npm uninstall -g cordova (If linux use sudo npm uninstall -g cordova)
如果你使用的是linux,不要使用sudo
commad在安装cordoava时,如果出现任何错误,请运行以下命令
sudo chown -R `whoami` ~/.npm sudo chown -R `whoami` /usr/local/lib/node_modules sudo chown -R `whoami` /usr/local
然后安装没有sudo的cordova
npm install -g cordova@3.5.0-0.2.7
在创build离子应用程序和添加android作为平台的时候不要使用sudo命令。 Cordova在添加平台时在主文件夹中创build一个.cordova目录。 在创build新的离子应用程序之前删除该目录。
下载Android(4.4.2)后,使用以下命令创build一个android虚拟设备:
android avd
我一直在努力(Ubuntu 14.04),我记得接受了让cordova build命令工作对我来说太困难了:-)。 我确信我的PATH是正确的(尝试根和用户等),并尝试了我能find的每个解决scheme。
Stoicuta Alexandru的评论在此页面为您解决。 我引用:
如果没有设置ANDROID_HOME,cordova会在home / android-sdk中search它
所以只要把我的android SDK在家庭文件夹和(重要)命名它的android-sdk做到了。
希望节省一些人一些时间…
我有同样的问题,但我发现了另一种方法,即使用Phonegap开发应用程序 。 你可以将它安装到模拟器并使用它。
我尝试使用etc / android-sdk-linux /在设置ANDROID_HOME后调用etc / platforms / android / cordova / run –emulator,并且工作正常。 唯一的问题是,我的系统是一个32位的操作系统/个人电脑,然后我必须设置ANDROID_EMULATOR_FORCE_32BIT =“真”出口命令。
在此操作之前,当然,我通过命令“android avd”设置模拟器,
在我的情况下,我首先创build了离子应用程序,并使用SUDO运行其他离子命令; 这就是为什么它不工作,因为sudo使用rootconfiguration文件。
这是我如何修复:
-
删除/home/user1/.cordova(用你的用户名replaceuser1)我用“sudo rm”命令删除文件夹及其全部内容
-
我删除了/ home / user1 / tmp文件夹,以便当我们再次运行cordova时,它会创build具有当前用户的适当权限的新的tmp文件夹
-
使用“离子启动应用程序5”创build了新的应用程序 – 这是我以前用sudo做的主要问题
-
添加平台使用“离子平台添加android”
-
执行“离子运行机器人”
记住,如果从命令行你可以运行“android”命令和“java -version”命令,那么上面是完美的解决scheme。 让我知道你们是否需要我的帮助。
面对这个问题多天后,我按照上面的说明,并在MAC上设置我的.bash_profile像这样
#==================================================== export ANT_HOME=/usr/local/Cellar/ant/1.9.4/bin/ant # export HOME="/Users/User" export ANDROID_HOME="$HOME/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk" export PATH="$HOME/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/tools:$ANDROID_HOME/platform_tools:$PATH" # export JAVA_HOME=$(/usr/libexec/java_home) export PATH=${PATH} # export PATH=${PATH}:/Users/User/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/platform-tools:/Users/User/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/tools:/Users/User/Downloads/Developer/adt-bundle-mac-x86_64-20140702/sdk/build-tools/android-4.4W # NPM_PACKAGES="${HOME}/.npm-packages" PATH="$NPM_PACKAGES/bin:$PATH" NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH" # # Unset manpath so we can inherit from /etc/manpath via the manpath # command unset MANPATH # delete if you already modified MANPATH elsewhere in your config MANPATH="$NPM_PACKAGES/share/man:$(manpath)"