web-dev-qa-db-fra.com

Cordova Platform add Android ne fonctionne pas en même temps que la liste Android cibles

J'ai un problème lorsque je veux ajouter une plate-forme Android à mon application phoneGap. J'ai reçu ce message dans ma CLI lorsque j'exécute la commande cordova platform add Android :

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

J'essaie déjà d'ajouter mon Android emplacement sdk dans la variable de chemin d'accès.

Aidez-moi, s'il vous plaît ! :RÉ

Je travaille sur Windows 7 64 bits, j'installe le Android API 17, 18 et 19 avec le Android SDK. Je suis sur la version 3.2 phoneGap.

75
balasta75

Pour fonctionner, cette commande cordova doit utiliser certains programmes situés dans votre sdk/tools répertoire. Vous devez également avoir installé Apache ant .

Ensuite, vous devez ajouter ces répertoires à votre variable système PATH:

Contexte:

  • supposons que vous avez installé votre SDK Android sur le c:\sdk\Android répertoire
  • vous avez installé Apache ant sur le c:\tools\Apache-ant répertoire

Ensuite, vous devez créer deux variables système:

  1. Android_HOME avec le c:\sdk\Android valeur
  2. ANT_HOME avec le c:\tools\Apache-ant valeur

Enfin, vous devez modifier la variable PATH et ajouter ces deux éléments à la fin de la valeur PATH ':

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

NOTE: pour ceux qui utilisent Linux, l'instruction diffère un peu.

Plus de documentation disponible ici .

167
l.cotonea

Pour ceux qui ont choisi l'environnement de développement Linux

Exigences

Tout d’abord, vous aurez besoin de quelques choses pour commencer. Ce sont: Android SDK et Apache Ant . Bien sûr, vous aurez besoin de Java SDK (JDK) installé.

Pour obtenir Android Le SDK fonctionne pour tous les utilisateurs, vous devrez modifier le fichier /etc/environment, Puis redémarrer votre PC. Mais si vous ne voulez pas de cette façon, suivez-moi, considérez-vous comme le seul utilisateur de PC et utilisez le fichier /home/YOUR_USERNAME/.bashrc pour le modifier.

Souvenons-nous une fois de votre chemin chez vous pour éviter d’autres longues files. Ajoutez celui-ci à votre /home/YOUR_USERNAME/.bashrc:

export HOME="/home/YOUR_USERNAME"

Nous utiliserons ensuite la notation $HOME Lorsque nous voulons dire "/home/YOUR_USERNAME directory".

Configuration Android SDK

Téléchargez l’archive du SDK Android) et décompressez-la quelque part. Supposons que votre répertoire personnel soit $HOME/adt-bundle/.

Ajoutez ces lignes à votre $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"

Mise en place de fourmi

Comme avec le SDK Android, téléchargez une archive et décompressez-la dans votre répertoire personnel. Ajoutez-les ensuite à votre .bashrc:

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

J'en ai installé un via le apt-get, Donc cela n'a pas affecté mon .bashrc.

Appliquer des changements

Pour que ces modifications fonctionnent, vous devez soit travailler dans une nouvelle fenêtre de terminal (ouverte après les modifications), soit exécuter source ~/.bashrc Pour créer modifications disponibles dans la fenêtre du terminal en cours.

Emballer

A la fin, vous aurez:

  1. Deux répertoires dans votre répertoire personnel - ant et Android-bundle
  2. Quelques lignes, ajoutées à votre .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"
    
42
shybovycha

Exécutez la commande "Android" à partir de votre dossier adt\sdk\tools et installez la dernière version des outils et du SDK. Assurez-vous également que votre PATH contient les bonnes variables.

Pour cela, vous devez installer ANT, un Java JDK et un Android SDK installé)

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

ANT_HOME ({emplacement ant}}\Apache\apache-ant)

Android_HOME ({emplacement du sdk Android}\sdk Android)

Ajoutez-les à votre variable PATH, comme% ANT_HOME%/bin;% Android_HOME%\tools;% Android_HOME%\platform-tools;% Java_HOME%\bin

Fermez et rouvrez votre cmd et exécutez votre commande à nouveau.

Similaire à PhoneGap/Cordova Android Développement

21
Llewellyn Collins

Je ne sais pas si c'est votre problème, mais j'ai rencontré des erreurs similaires lorsque le cache de la bibliothèque Cordova est pollué par quelque chose de corrompu. Pour résoudre ce problème, il vous suffit de supprimer le cache cordova, qui se repeuillira automatiquement lors de la prochaine utilisation de 'cordova'.

Sous OS X, ce répertoire est ~/.cordova. Sous Windows, je suppose que le nom de domaine .cordova figure toujours dans le répertoire de base de vos utilisateurs.

4
Jason Farnsworth

La réponse est "Tout ce qui précède". Faites comme mentionné avec les variables d'environnement, faites aussi ceci:

C:\Utilisateurs {YOUR_NAME} .cordova\lib\Android\cordova\3.5.0\framework modifiez le fichier project.properties et remplacez target = Android-19 par target = Android-20.

Cela devra vraisemblablement être modifié pour la prochaine restitution de Android sdk's jusqu'à la résolution de ce petit problème.

4
Tristan Isfeld

J'ai eu le même problème même si les variables de chemin d'accès ont été définies exactement selon les instructions. Après avoir traversé plusieurs fichiers, je l'ai finalement résolu. Pour moi (Windows 7 entreprise 64 bits), je devais modifier check_reqs.js et create.js à partir de "C:\Utilisateurs\.cordova\lib\Android\cordova\3.5.0\bin\lib\" dossier pour inclure le chemin absolu pour Android.bat. Mon Android SDK se trouve sous "C:\Android\android-sdk".

Dans check_reqs.js j'ai modifié

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) {

Dans create.js, j'ai modifié l'instruction

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

à

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

N'oubliez pas non plus ces doubles "\\" dans le chemin absolu

3
508Ninja

après une longue lutte, après avoir fait toutes les suggestions ci-dessus plus d'une fois avec un désespoir grandissant, j'ai simplement ouvert mon cmd en tant qu'administrateur. ça a marché. Je suppose que je viens de trop m'habituer à "Sudo" avant d'avoir ce PC.

2
Yuval Perelman

Pour ceux qui ont rencontré ce problème, j’ajoute un élément supplémentaire qui peut être utile. Dans mon cas, toutes les variables étaient correctement configurées et il n’était toujours pas possible d’ajouter Android et j’avais désactivé mon système d’avast antivirus et bouffée! tout se passait sans heurts, ce qui se passait, c’était que l’antivirus bloquait la création de la plate-forme.

Aussi important pour moi était de redémarrer le PC. ;)

Cordialement.

2
Darq Roya

J'ai remarqué le problème avec Cygwin/Windows 7. Le problème provient de la façon légèrement différente dont les shells Cygwin et MS-DOS traitent les fichiers .bat.

Pendant "ajouter une plate-forme", Cordova appelle "Android":

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

Où il appelle 'cibles de la liste Android' (en ligne 73)

"Android" doit se résoudre en/xx/Android-sdk/tools/Android.bat ou xx:\Android-sdk\tools\Android.bat. (Et, en fait, je peux exécuter "Android" sur la commande MS-DOS Shell - mais pas dans Cygwin Shell. Il faut y ajouter ".bat".)

"Android" sans ".bat" échoue dans Cygwin Shell car Android.exe n'existe pas (seul le .bat existe). Le fait de modifier la ligne 73 pour appeler "cibles de liste Android.bat" résoudra votre problème (ou donnera un message d'erreur raisonnable).

Une autre solution consiste à exécuter cordova dans un shell MS-DOS au lieu de Cygwin Shell.

1
Charlie Dalsass

Ce problème est généralement dû au fait que la variable PATH n'a pas été définie pour 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"
0
Bastin Robin

Nous avons une liste de solutions ici, alors j'ajoute la mienne. Ce n'était pas clair pour moi jusqu'à ce que j'essaye juste. Vous devez ajouter% ANT_HOME%\bin;% Android_HOME%\tools;% Android_HOME%\platform-tools à la variable USER PATH, et non à la variable System. La variable System PATH concaténera automatiquement la variable USER PATH et traduira les variables en sa valeur. J'espère que ça aide quelqu'un. P.S. Mon système d'exploitation est Win 7x64

0
BillyZ

La réponse acceptée est bonne et pertinente.

Je suis tombé sur une autre page où il est très bien expliqué avec des captures d'écran.

Vous pouvez vous référer http://bealers.com/2014/06/phonegap-Android-development-environment-for-windows/

0
Tejasvi Hegde