2014-06-25 9 views
18

Cordova generazione non riuscita con codice di errore: eAccessCordova costruire Comando non riuscito con il codice di uscita EACCES

$ cordova build android 
Running command: /home/user/proj1/platforms/android/cordova/build 
execvp(): Permission denied 
Error: /home/user/proj1/platforms/android/cordova/build: Command failed with exit code EACCES 
    at ChildProcess.whenDone (/usr/lib/node_modules/cordova/node_modules/cordova-lib/src/cordova/superspawn.js:131:23) 
    at ChildProcess.EventEmitter.emit (events.js:95:17) 
    at Process.ChildProcess._handle.onexit (child_process.js:795:12) 

====================================== 
    OS : Ubuntu 14.04 
    npm version: 1.4.16 
    cordova version : 3.5.0-0.2.4 
====================================== 

hanno aggiunto piattaforma Android per proj1 provato a reinstallare cordova, ma non ha funzionato

risposta

26

Per qualche motivo, build non è attualmente un file eseguibile. Per risolvere ciò, aprire il terminale e immettere i seguenti comandi:

$ cd <your-project-directory>/platforms/android/cordova 
$ chmod a+x build 
0

difficile da diagnosticare il problema qui. Potresti aggiungere ulteriori informazioni alla descrizione del problema?

Per quello che posso vedere, che non è troppo, è perché uno degli eseguibili non ha i permessi di esecuzione giusti per il tuo utente (assumendo che tu sia su Ubuntu 14.04 per il tuo output).

Verificare che gli strumenti SDK di Android e gli strumenti di piattaforma, così come JDK e Ant Oracle, siano nel PATH con le autorizzazioni appropriate. Altrimenti, metti più informazioni qui.

+0

questo dovrebbe essere un commento, non una risposta –

9

Questo è un problema di PhoneGap comune.

La maggior parte delle volte ha a che fare con le autorizzazioni per la cartella build e il file di script.

Provare a utilizzare: chmod a+x su di essi.

+3

sento il tuo dolore, veramente, ma downvoting per ovvi motivi ... cmon! cerca di essere un po 'più utile! –

+0

Puoi mostrare come usare quella chmod a + x line? O lo inserisci nella cartella principale e premi invio? –

+0

Devi 'chmod a + x/directory/file' perché funzioni. Vedi: http://www.linux.org/threads/file-permissions-chmod.4094/ – fuzz

0

Ho gli stessi problemi, l'ho risolto oggi dopo innumerevoli prove ed errori. In realtà ho avuto la possibilità di far apparire BUILD SUCCESS.
la cosa è quello di cambiare la variabile environemnt ..
da

JAVA_HOME: C: \ Program Files (x86) \ Java \ jre
PATH: C: \ Program Files (x86) \ Java \ jdk1.xx \ bin

a

JAVA_HOME : C: \ Program Files (x86) \ Java \ jdk1.xx \ jre
PATH: C: \ Program Files (x86) \ Java \ jdk1.xx \ bin

NOTA: la JAVA_HOME deve indicare JDK/JRE (il figlio jre di jdk). Installo sia jre che jdk. sembra che sia necessario installare entrambi per la cordova-CLI per funzionare su windows8.1.
Spero che questo aiuti.

6

Per risolvere il problema EACCESS, copiare e salvare le impostazioni personalizzate di icone icone/schizzi/config.xml ed eliminare la cartella della piattaforma. dopo questo, phonegap esegue nuovamente Android dalla tua console. dovrebbe funzionare di nuovo. dopo di ciò, copia i file/le impostazioni personalizzate nella nuova piattaforma della piattaforma.

+1

questa soluzione funziona per me (linux) – mrmnmly

+0

Anche per me funziona (linux) –

2

Il mio problema è stato risolto rimuovendo la mappa/piattaforme/android. Successivamente ho aggiunto di nuovo la piattaforma.

piattaforma Cordova aggiungere Android

Per me ha funzionato, ma penso che ci sono diverse ragioni è mostrato questo errore ..

! Fai il backup delle tue icone!

Ricordatevi di eseguire il backup dei icone in/piattaforme// android res/ o copiare l'intera mappa come backup per essere sicuri di non perdere il lavoro ...

+0

Perfetto! Questo ha risolto il mio problema. –

2

Si potrebbe forza bruta se si sono un amministratore e solo sudo chmod -R 777 ./platforms/ dalla directory principale del progetto.

1

Il mio consiglio è di rimuovere la directory platforms e reinstallare ogni piattaforma.

$ cd <your-project-directory> 
$ rm -r platforms # -or- manually remove the directory 
$ cordova platform add <platform> # ios, android, ... 

esecuzione chmod a+x build (come suggerito nella risposta accettata) non risolve cordova platform rm <platform> problemi di autorizzazione. Più sicuro (e più semplice) ripristinare ogni piattaforma al suo stato predefinito, invece di modificare (e ricordare) i permessi per i singoli file/directory.