52 votes

PhoneGap/Cordova Développement Android

Mise à JOUR 1:

C'était tout ce que j'ai fait à la fin:

sudo aptitude install -y python-software-properties python g++ make
sudo add-apt-repository -y ppa:chris-lea/node.js
sudo aptitude update
sudo aptitude install nodejs
sudo aptitude install npm
sudo npm install -g cordova
sudo npm install -g phonegap
phonegap create my-app
cd my-app
export PATH=${PATH}:/home/oshirowanen/Downloads/adt-bundle-linux-x86_64-20131030/sdk/platform-tools:/home/oshirowanen/Downloads/adt-bundle-linux-x86_64-20131030/sdk/tools
sudo aptitude install ant
cordova platform add android
android create avd --name my_and --target 1
phonegap run android

A tout de ce pas nécessaire?


QUESTION DE DÉPART:

Sur mon Ubuntu 12.04 ordinateur, je viens d'installer node.js avec npm et cordoue:

$ node -v
v0.10.23

$ npm -v
1.3.17

$ cordova -v
3.3.0-0.1.1

Lorsque j'essaie d'ajouter android:

$ cordova platform add android

J'obtiens le résultat suivant:

Creating android project...

/usr/lib/node_modules/cordova/node_modules/q/q.js:126
                    throw e;
                          ^
Error: An error occured during creation of android sub-project. 

/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:126
                    throw e;
                          ^
Error: An error occurred while listing Android targets
    at /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/lib/check_reqs.js:87:29
    at _rejected (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:808:24)
    at /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:834:30
    at Promise.when (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:1079:31)
    at Promise.promise.promiseDispatch (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:752:41)
    at /home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:574:44
    at flush (/home/oshirowanen/.cordova/lib/android/cordova/3.3.0/bin/node_modules/q/q.js:108:17)
    at process._tickCallback (node.js:415:13)

    at /usr/lib/node_modules/cordova/src/platform.js:244:30
    at ChildProcess.exithandler (child_process.js:641:7)
    at ChildProcess.EventEmitter.emit (events.js:98:17)
    at maybeClose (child_process.js:735:16)
    at Socket.<anonymous> (child_process.js:948:11)
    at Socket.EventEmitter.emit (events.js:95:17)
    at Pipe.close (net.js:466:12)

Quelqu'un sait pourquoi ce qui se passe et comment le résoudre?

Je reçois le même problème avec PhoneGap.

89voto

TomL Points 1156

Il est possible que l'Android outils binaires ne sont pas dans votre chemin d'accès.

Selon le PhoneGap docs (http://docs.phonegap.com/en/2.9.0/guide_getting-started_android_index.md.html), vous devez inclure le Android SDK tools et de la plate-forme d'outils dans votre variable d'environnement PATH.

export PATH=${PATH}:/Développement/adt-bundle/sdk/platform-tools:/Développement/adt-bundle/sdk/tools

d'où le Développement est le chemin que vous avez installé le kit de développement logiciel.

10voto

Llewellyn1411 Points 755

Exécutez le "android" commande à partir de votre adt\sdk\tools dossier et installez les derniers Outils et kit de développement logiciel. Assurez-vous également que votre CHEMIN a le droit de variables.

Pour cela, vous aurez besoin de FOURMI pour être installé un JDK JAVA et Android SDK installé

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

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

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

Ajoutez-les à votre variable PATH %ANT_HOME%/bin;%ANDROID_HOME%\outils;%ANDROID_HOME%\platform-tools;%JAVA_HOME%\bin

Fermez et ré-ouvrez votre cmd et exécutez à nouveau la commande.

5voto

user1739529 Points 41

Je suis sur Ubuntu 12.04 et a été d'avoir le même problème que toi jusqu'à il y a quelques minutes.

Les deux choses que j'ai remarqué que j'avais raté lors de l'installation:

  1. La version Android devrait être de 19 et vous devriez être en mesure de type "android" à la console et voir une partie de la sortie ou de voir une fenêtre pop-up. Assurez-vous d'ajouter le chemin vers le dossier où android.jar est situé à la variable PATH, et de définir ANDROID_HOME à ce même chemin. En général, vous devez le faire dans votre .bashrc fichier ou dans /etc/environment Si vous modifiez l'un de ces fichiers, vous aurez besoin de " source ~/.bashrc' ou de rouvrir votre terminal pour le forcer à recharger le fichier. Type "android" pour s'assurer que son travail.

  2. J'ai observé que le cordova script d'installation a été de tenter d'écrire des fichiers dans un sous-répertoire 'add-ons' du SDK Android. Ce répertoire n'existe pas dans l'Android 19 de la distribution elle-même. Par conséquent, j'ai créé manuellement et rendu accessible en écriture par mon compte d'utilisateur.

ex: Android voie de distribution:

/opt/android/

Le chemin que son essayer d'écrire à:

/opt/android/sdk/add-ons

Une fois que j'avais fait que j'ai été capable de passer à côté du problème que vous avez noté ci-dessus.

1voto

Nagendhiran Points 11

Il ressemble à cordova andorid bibliothèque de fichier corrompu dans votre répertoire home.

Essayez de supprimer la maison//.cordova répertoire et de le faire de nouveau, cordova plate-forme d'ajouter android dans votre projet cordova.

Assurez-vous d'avoir de source /de la plate-forme d'outils et /outils de CHEMIN.

0voto

Gamex Points 815

Android

Le Android outils de ligne de commande sont construits sur des scripts shell. Vous devez avoir le SDK Android outils de la plate-forme et des outils de dossiers dans votre CHEMIN!

Créer un projet

Exécutez la commande de création avec les paramètres suivants:

Path to your new Cordova Android project

Package name, following reverse-domain style convention

Main Activity name

$ /path/to/cordova-android/bin/create /path/to/my_new_cordova_project com.example.cordova_project_name CordovaProjectName

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X