Кордоба платформы добавить android не работает при перечислении Android целей

У меня возникли проблемы, когда я хочу добавить платформу Android в приложение phoneGap. Я получил это сообщение в своем CLI, когда я запускаю команду corova platform add android:

Checking Android requirements... (Error: An error occurred while listing Android targets)

Я уже пытаюсь добавить свое местоположение sdk для Android в переменную пути.

Пожалуйста, помогите мне!: D

Я работаю над 64-разрядными версиями Windows 7, я устанавливаю API android API 17, 18 и 19 с помощью SDK android. Я нахожусь в версии 3.2 phoneGap.

Ответ 1

Чтобы работать, этой команде cordova необходимо использовать некоторые программы, расположенные в вашем каталоге sdk/tools. Вам также необходимо установить apache ant.

Затем вы должны добавить эти каталоги в свою системную переменную PATH:

Фон:

  • предположим, что вы установили Android SDK в каталог c:\sdk\android
  • вы установили < Apache ant в каталог c:\tools\apache-ant

Затем вы должны создать две системные переменные:

  • ANDROID_HOME с c:\sdk\android значением
  • ANT_HOME со значением c:\tools\apache-ant

Наконец, вы должны изменить переменную PATH и добавить эти два в конец значения PATH:

;%PATH%\tools;%ANT_HOME%\bin;%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools

ПРИМЕЧАНИЕ: для тех, кто использует Linux, инструкция немного отличается.

Дополнительная документация доступна здесь.

Ответ 2

Для избранных, которые предпочитают среду разработки Linux

Требования

Прежде всего, для начала вам понадобятся несколько вещей. Это: Android SDK и Apache Ant. Конечно, вам понадобится Java SDK (JDK).

Чтобы заставить Android SDK работать для всех пользователей, вам необходимо изменить файл /etc/environment, а затем перезагрузить компьютер. Но если вы не хотите этого трудного пути - следуйте за мной, подумайте о себе как о единственном пользователе ПК. И используйте файл /home/YOUR_USERNAME/.bashrc для редактирования.

Помните свой домашний путь один раз, чтобы предотвратить дальнейшие длинные строки. Добавьте это в свой /home/YOUR_USERNAME/.bashrc:

export HOME="/home/YOUR_USERNAME"

Затем мы будем использовать обозначение $HOME, если хотим сказать "/home/YOUR_USERNAME directory".

Настройка Android SDK

Загрузите архив Android SDK и разархивируйте его где-нибудь. Скажем, в вашем домашнем каталоге $HOME/adt-bundle/.

Добавьте эти строки в свой $HOME/.bashrc:

export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"

Настройка Ant

Как и в случае с Android SDK, загрузите архив и разархивируйте его в свой домашний каталог. Затем добавьте их в свой .bashrc:

export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"

Я установил один через apt-get, поэтому это не повлияло на мой .bashrc.

Применение изменений

Чтобы эти изменения работали, вы должны либо работать в новом окне терминала (открывать после), либо запускать source ~/.bashrc, чтобы сделать изменения доступными в текущем окне терминала.

Завершение

В конце вы получите:

  • Два каталога в вашем домашнем каталоге - ant и android-bundle
  • Несколько строк, добавленных в ваш .bashrc:

    export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
    export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
    export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
    
    export ANT_HOME="$HOME/ant"
    export PATH="$PATH:$ANT_HOME/bin"
    

Ответ 3

Запустите команду "android" из папки adt\sdk\tools и установите последние инструменты и SDK. Также убедитесь, что ваш PATH имеет правильные переменные.

Для этого вам понадобится ANT для установки, установлен JAVA JDK и Android SDK

JAVA_HOME (C:\Program Files\Java\jdk)

ANT_HOME ({ ant location}\apache\apache- ant)

ANDROID_HOME ({android sdk location}\android-sdk)

Добавьте их в свою переменную PATH, например% ANT_HOME%/bin;% ANDROID_HOME%\tools;% ANDROID_HOME%\platform-tools;% JAVA_HOME%\bin

Закройте и снова откройте свой cmd и снова запустите команду.

Совместимо с Android-телефоном PhoneGap/Cordova

Ответ 4

Я не уверен, что это ваша проблема, но я столкнулся с подобными ошибками, когда кеш библиотеки кордоны загрязнен чем-то поврежденным. Чтобы исправить это, вам просто нужно удалить кеш-кордову, и он будет автоматически повторно заполняться при следующем использовании "кордовы".

В OS X этот каталог ~/.cordova. В Windows я предполагаю, что это .cordova в домашнем каталоге ваших пользователей.

Ответ 5

Ответ: "Все выше". Однако, как уже упоминалось в переменных среды, выполните следующие действия:

C:\Users {YOUR_NAME}.cordova\lib\android\cordova\3.5.0\framework отредактируйте файл project.properties и измените target = android-19 на target = android-20.

Предположительно, это нужно будет изменить для следующего исполнения android sdk, пока эта небольшая проблема не будет решена.

Ответ 6

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

Ответ 7

Для тех, кто столкнулся с этой проблемой, я добавляю что-то дополнительное, что может быть полезно, в моем случае все правильно настроенные переменные, и это все еще неспособно добавить платформу Android, и я действительно отключил мой антивирус avast и слоем! все протекало гладко, происходило то, что антивирус блокировал создание платформы.

Также важно было перезагрузить компьютер.;)

С уважением.

Ответ 8

У меня была такая же проблема, хотя переменные пути были установлены точно в соответствии с инструкциями. После прохождения нескольких файлов я, наконец, решил. Для меня (Windows 64 Enterprise 64 бит) мне пришлось изменить check_reqs.js и create.js из "C:\Users \.cordova\lib\android\cordova\3.5.0\bin\lib\" , чтобы включить абсолютный путь для android.bat. Мой SDK для Android работает под "C:\Android\android-sdk".

В check_reqs.js я изменил

child_process.exec('android list targets', function(err, stdout, stderr) {

к

child_process.exec('C:\\Android\\android-sdk\\tools\\android.bat list targets', function(err, stdout, stderr) {

В create.js я изменил инструкцию

return exec('android update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

to

return exec('C:\\Android\\android-sdk\\tools\\android.bat update project --subprojects --path "' + projectPath + '" --target ' + target_api + ' --library "' + path.relative(projectPath, targetFrameworkDir) + '"');

Также не забудьте те двойные "\\" в абсолютном пути

Ответ 9

Я заметил проблему с Cygwin/Windows 7. Проблема связана с несколькими разными способами: оболочки Cygwin и MS-DOS обрабатывают файлы .bat.

Во время "добавления платформы" кордова вызывает "андроид":

C:\Users\xxx\.cordova\lib\android\cordova\3.4.0\bin\lib\check_reqs.js

Где он называет "целевые объекты списка Android" (в строке 73)

"android" должен разрешить /xx/android -sdk/tools/android.bat или xx:\android-sdk\tools\android.bat. (И, на самом деле, я могу запустить "android" в командной оболочке MS-DOS, но не в оболочке Cygwin. Там мне нужно добавить ".bat".)

"андроид" без ".bat" не работает в оболочке Cygwin, потому что файл android.exe не существует (только .bat). Изменение строки 73 для вызова "целей списка android.bat" решит вашу проблему (или даст разумное сообщение об ошибке).

Еще одна проблема - запустить кордову в оболочке MS-DOS вместо оболочки Cygwin.

Ответ 10

У нас есть список решений, поэтому я добавляю свой. Это было непонятно для меня, пока я просто не попытаюсь. Вы должны добавить% ANT_HOME%\bin;% ANDROID_HOME%\tools;% ANDROID_HOME%\platform-tools к переменной USER PATH, а не к системной. Переменная System PATH автоматически объединяет переменную USER PATH и переводит переменные в ее значение. Надеюсь, что это помогает кому-то. Постскриптум Моя ОС - Win 7x64

Ответ 11

Эта проблема обычно возникает из-за того, что переменная PATH не установлена ​​для Android SDK.

export HOME="/home/yourname"
export ANDROID_HOME="$HOME/android-bundle/sdk/tools"
export ANDROID_PLATFORM_TOOLS="$HOME/android-bundle/sdk/platform-tools"
export PATH="$ANDROID_HOME:$ANDROID_PLATFORM_TOOLS:$PATH"
export ANT_HOME="$HOME/ant"
export PATH="$PATH:$ANT_HOME/bin"