"Ошибка: команда" Android"не удалось" с помощью Cordova

Я пытаюсь добавить платформу Android на Cordova. Я добавил и загрузил самый последний SDK в Android SDK, мой путь:export PATH=${PATH}:/Users/xxx/Development/android-sdk-macosx/platform-tools:Users/xxx/Development/android-sdk-macosx/tools, но я продолжаю получать следующую ошибку:

Error: The command "android" failed. Make sure you have the latest Android SDK installed, and the "android" command (inside the tools/ folder) is added to your path.
    at /Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/lib/check_reqs.js:85:29
    at _rejected (/Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:808:24)
    at /Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:834:30
    at Promise.when (/Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:1079:31)
    at Promise.promise.promiseDispatch (/Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:752:41)
    at /Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:574:44
    at flush (/Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:419:13)
Error: /Users/xxx/.cordova/lib/android/cordova/3.5.0/bin/create: Command failed with exit code 8
    at ChildProcess.whenDone (/usr/local/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23)
    at ChildProcess.emit (events.js:98:17)
    at maybeClose (child_process.js:755:16)
    at Process.ChildProcess._handle.onexit (child_process.js:822:5)

Что я делаю неправильно? Я всюду ищу ответы, но ничего не получается. Заранее спасибо!

2 ответа

В случае Apache Cordova с Android Studio 0.8 для Mac OS X 10.9, если вы установили в папку по умолчанию /Applications, запустите это на терминале

export ANDROID_HOME="/Applications/Android Studio.app/sdk"
export ANDROID_TOOLS="/Applications/Android Studio.app/sdk/tools/"
export ANDROID_PLATFORM_TOOLS="/Applications/Android Studio.app/sdk/platform-tools/"
PATH=$PATH:$ANDROID_HOME:$ANDROID_TOOLS:$ANDROID_PLATFORM_TOOLS

Для подтверждения запустите echo и получите

echo $PATH
/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/Applications/Android Studio.app/sdk:/Applications/Android Studio.app/sdk/tools/:/Applications/Android Studio.app/sdk/platform-tools/

Для Cordova 3.6 он выкинул еще одну ошибку на свежей Android Studio

Error: Please install Android target "android-19"

Чтобы решить эту проблему, откройте менеджер SDK в IDE и загрузите указанную версию для Android (android-19)

android Команда является частью пакета инструментов Android SDK. И то и другое android а также adb используются инструментами Cordova, чтобы творить свою магию, и оба должны быть на пути.

Они расположены в следующих каталогах:

path/to/android/sdk/tools
path/to/android/sdk/platform-tools  

Я не знаю, на какой ОС вы разрабатываете. Процесс изменения пути отличается в Windows и Unix-системах.

добавить в путь в Unix-подобных системах

В моей системе (OSX) это делается путем добавления следующих строк в .bash_profile:

PATH=$PATH:/Users/lorenzo/dev/sdks/adt-bundle/sdk/tools
PATH=$PATH:/Users/lorenzo/dev/sdks/adt-bundle/sdk/platform-tools

это также можно сделать в одну строку:

PATH=$PATH:/Users/lorenzo/dev/sdks/adt-bundle/sdk/tools:/Users/lorenzo/dev/sdks/adt-bundle/sdk/platform-tools

это добавляет строки пути к глобальной переменной PATH. В Unix разделителем пути является ':'

добавить к пути на окнах

Примерно такой же процесс, вот официальные документы: http://msdn.microsoft.com/en-us/library/windows/desktop/ms682653%28v=vs.85%29.aspx

дополнительное чтение и следующие шаги

Эта статья блога проведет вас через настройку пути и является актуальной.

Вы можете ознакомиться с руководством по началу работы для Cordova Android, в котором подробно описано, как добавить необходимые компоненты в свой путь.

После того, как ваш путь настроен, вам нужно будет запустить android инструмент и установить дополнительные инструменты и платформы Android (версии).

Your system will need Apache ANT and the java run time as well.

Note that these are not cordova specific requirements, but requirements for Android development with the SDK.

Другие вопросы по тегам