Android HOME не установлен и команда "android" не в вашем пути Phonegap

Я установил Android bundle, и я настроил все.файл bashrc и даже когда я говорю android в командной строке .. я получаю Android manager .. но когда я говорю, что ionic platform add android, я всегда получаю ошибку как " Error: ANDROID_HOME не установлен, а команда "android" не находится на вашем пути. Вы должны выполнить хотя бы одно из этих условий.". я пробовал много способов, но проблема не исправлена .

платформа :

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)

могу ли я узнать, как я могу исправить эту ошибку

6 ответов


я столкнулся с той же проблемой, и это решаемо.

Я думаю, что это проблема с совместимостью последней cordova с последней android. А также у вас есть проблема с Android home path.

In .файл 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, если вы используете более старую версию. И скачать Android 4.4.2 (API 19) из вашего Android менеджера.

вы можете использовать последнюю версию cordova (4.0.0), но если проблема все еще затем используйте cordova (3.5.0-0.2.7), но если вы хотите обновить или понизить cordova, удалите существующий, используя: -

npm uninstall -g cordova  (If linux use sudo npm uninstall -g cordova)

если вы используете linux, не используйте судо!--6-->

commad во время установки cordoava, если вы получите какую-либо ошибку, выполните следующие команды

sudo chown -R `whoami` ~/.npm
sudo chown -R `whoami` /usr/local/lib/node_modules
sudo chown -R `whoami` /usr/local

затем установите cordova без sudo

npm install -g cordova@3.5.0-0.2.7

во время создания ионного приложения и добавления android в качестве платформы не используйте команду sudo. Cordova создает .каталог cordova в домашней папке во время добавления платформы. Удалите этот каталог перед созданием нового приложения ionic.

и после загрузки android (4.4.2) создайте виртуальное устройство android с помощью команды:

android avd

Я также боролся с этим (Ubuntu 14.04), и я помню, что принял, что просто заставить команду сборки cordova работать было слишком сложно для меня: -). Я был уверен, что мои пути были правильными (пробовал root и user и т. д.) и пробовал каждое решение, которое я мог найти.

комментарий Стоикуты Александру на этой странице решил это за меня. Цитирую:

Если ANDROID_HOME не установлен, cordova будет искать его в главная / android-sdk

поэтому просто поместите мой Android sdk в домашнюю папку и (важно) назовите его android-sdk.

надеюсь сэкономить некоторое время...


У меня была такая же проблема, но я нашел альтернативный метод, т. е. с помощью Приложение Для Разработчиков Phonegap. Вы можете установить его в эмулятор и использовать.


Я попытался вызвать etc/platforms/android/cordova/run --emulator после установки ANDROID_HOME с etc/ android-sdk-linux / и отлично работает. Уникальная проблема заключается в том, что моя система-32bit OS/PC, а затем мне пришлось установить ANDROID_EMULATOR_FORCE_32BIT='true' с командой экспорта.

перед этой операцией, конечно, я установил эмулятор через команду "android avd"


в моем случае я сначала создал ионное приложение и запустил другие ионные команды с помощью SUDO; поэтому он не работал, поскольку sudo использует корневой профиль.

вот как я исправил:

  1. удалить /home/user1/.cordova (заменить user1 на имя пользователя) я использовал команду "sudo rm" для удаления папки и всех ее конентов

  2. Я удалил папку /home/user1/tmp, чтобы при повторном запуске cordova она создавала новую папку tmp с правильное разрешение текущего пользователя

  3. создано новое приложение с помощью "ionic start app5" - это была основная проблема, как я ранее делал это с sudo

  4. добавлена платформа с помощью "ionic platform add android"

  5. выполняется с помощью "ionic run android"

помните, что если из командной строки вы можете запустить команду "android" и команду "java-version", то выше-идеальное решение. дай мне знать, если ребята, вам нужна моя помощь.


после столкновения в течение многих дней с этой проблемой я следую инструкциям выше и устанавливаю мой .bash_profile, как это на MAC

#====================================================
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)"