Ionic build android, Ошибка: spawn EACCES

Если я создаю новое приложение, выполните следующие действия:

Rubens-MacBook-Pro:~ rlopez$ npm install -g cordova ionic
Rubens-MacBook-Pro:~ rlopez$ ionic start myApp tabs
Rubens-MacBook-Pro:~ rlopez$ cd myApp
Rubens-MacBook-Pro:myApp rlopez$  ionic platform add [email protected] //6.1.x has a bug
Rubens-MacBook-Pro:myApp rlopez$  ionic build android

Я получаю этот вывод:

> [email protected] ionic:build /Users/rlopez/Proyectos/sfp-concursaPy
> ionic-app-scripts build

[15:13:28]  ionic-app-scripts 1.1.4 
[15:13:28]  build dev started ... 
[15:13:28]  clean started ... 
[15:13:28]  clean finished in 3 ms 
[15:13:28]  copy started ... 
[15:13:28]  transpile started ... 
[15:13:31]  transpile finished in 2.96 s 
[15:13:31]  preprocess started ... 
[15:13:31]  preprocess finished in less than 1 ms 
[15:13:31]  webpack started ... 
[15:13:31]  copy finished in 3.17 s 
[15:13:41]  webpack finished in 9.26 s 
[15:13:41]  sass started ... 
[15:13:41]  sass finished in 897 ms 
[15:13:41]  postprocess started ... 
[15:13:41]  postprocess finished in 1 ms 
[15:13:41]  lint started ... 
[15:13:41]  build dev finished in 13.15 s 
[15:13:43]  lint finished in 2.04 s 
ANDROID_HOME=/Users/rlopez/Library/Android/sdk

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home

Error: spawn EACCES

Запуск ионной информации дает следующее:

Your system information:

Cordova CLI: 6.5.0 
Ionic Framework Version: 3.1.1
Ionic CLI Version: 2.2.3
Ionic App Lib Version: 2.2.1
Ionic App Scripts Version: 1.3.6
ios-deploy version: 1.8.5 
ios-sim version: 5.0.13 
OS: OS X El Capitan
Node Version: v6.10.1
Xcode version: Xcode 7.3.1 Build version 7D1014

Что я делаю неправильно? Является ли это ошибкой в ​​Ionic?

[изменить]

Запуск ionic build android --verbose дает следующий результат:

Running command: "/Applications/Android Studio 2.4 
Preview.app/Contents/gradle/gradle-3.4.1/bin/gradle" -p 
/Users/rlopez/myApp/platforms/android wrapper -b 
/Users/rlopez/myApp/platforms/android/wrapper.gradle

Error: spawn EACCES
    at exports._errnoException (util.js:1018:11)
    at ChildProcess.spawn (internal/child_process.js:319:11)
    at Object.exports.spawn (child_process.js:378:9)
    at exports.spawn(/Users/rlopez/myApp/platforms/android/cordova/node_modules/cordova-common/src/superspawn.js:134:31)
    at GradleBuilder.runGradleWrapper(/Users/rlopez/myApp/platforms/android/cordova/lib/builders/GradleBuilder.js:78:14)
    at /Users/rlopez/myApp/platforms/android/cordova/lib/builders/GradleBuilder.js:178:21
    at _fulfilled (/Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:854:54)
    at self.promiseDispatch.done (/Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:883:30)
    at Promise.promise.promiseDispatch (/Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:816:13)
    at /Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:570:49

Ответы

Ответ 1

Сегодня такая же ошибка. Благодаря комментариям выше, вот как я его исправил.

Ran:

cordova build android --verbose

и он показал мне, где он получил ошибку "Разрешение отказа"... В моем случае это было:

Running command: /usr/libexec/java_home
Command finished with error code 0: /usr/libexec/java_home
ANDROID_HOME=/Users/mj/phonegap/adt-bundle-mac-x86_64-20140321/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
Running command: "/Applications/Android Studio.app/Contents/gradle/gradle-2.2.1/bin/gradle"
 -p /Users/mj/EduceMobile/app/platforms/android wrapper -b /Users/mj/EduceMobile/app/platfo
rms/android/wrapper.gradle

Чтобы исправить, побежал:

sudo chmod 755 /Applications/Android\ Studio.app/Contents/gradle/gradle-2.2.1/bin/gradle

... и

...
...
:cdvBuildDebug

BUILD SUCCESSFUL

Total time: 2 mins 44.195 secs

Надеюсь, что это поможет.

Ответ 2

Выше решения не работали для меня. Я решил ошибку с помощью этой команды:

chmod 755 platforms/android/gradlew

Ответ 3

Для тех, кто получает подобную ошибку после обновления Android Studio до версии 3.x, вы можете запустить следующую команду, чтобы исправить ее:

sudo chmod 755 /Applications/Android\ Studio.app/Contents/gradle/gradle-4.1/bin/gradle

Надеюсь, это поможет!

Ответ 4

Только для OSX --- Перейдите в папку приложений из Finder и просто переименуйте имя пакета приложения Android Studio, удалив пробел между ними.

До: Android Studio После: AndroidStudio

По умолчанию нет прав на разрешения, просто проблема была в этом вопросе.

Приветствия!

Ответ 5

Просто столкнулся с той же проблемой, и я не думаю, что это имеет какое-то отношение к sudo - эта команда просто пропускает разрешение на выполнение

chmod +x hooks/after_prepare/010_add_platform_class.js

Ответ 6

sudo chmod 755 /Applications/Android\ Studio.app/Contents/gradle/gradle-4.1/bin/gradle

Ответ 7

Запуск ionic build android --verbose дает следующий результат:

/Applications/Android Studio 2.4 
Preview.app/Contents/gradle/gradle-3.4.1/bin/gradle -p 
/Users/rlopez/myApp/platforms/android wrapper -b 
/Users/rlopez/myApp/platforms/android/wrapper.gradle

Error: spawn EACCES
    at exports._errnoException (util.js:1018:11)
    at ChildProcess.spawn (internal/child_process.js:319:11)
    at Object.exports.spawn (child_process.js:378:9)
    at exports.spawn(/Users/rlopez/myApp/platforms/android/cordova/node_modules/cordova-common/src/superspawn.js:134:31)
    at GradleBuilder.runGradleWrapper(/Users/rlopez/myApp/platforms/android/cordova/lib/builders/GradleBuilder.js:78:14)
    at /Users/rlopez/myApp/platforms/android/cordova/lib/builders/GradleBuilder.js:178:21
    at _fulfilled (/Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:854:54)
    at self.promiseDispatch.done (/Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:883:30)
    at Promise.promise.promiseDispatch (/Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:816:13)
    at /Users/rlopez/myApp/platforms/android/cordova/node_modules/q/q.js:570:49

Изменение разрешений /Applications/Android Studio 2.4 Preview.app/Contents/gradle/gradle-3.4.1/bin/gradle решает проблему.

Ответ 8

Я смог исправить, выполнив следующую команду в Terminal

sudo chmod 755 "/Applications/Android Studio.app/Contents/gradle/gradle-4.1/bin/gradle"

введите описание изображения здесь

После запуска я смог успешно выполнить эту команду

ionic cordova build android --release 

Ответ 9

Моя проблема не была разрешениями... Я не мог найти причину проблемы, но я сделал обходной путь. эта ошибка происходила, когда я пытался добавить плагин, который не был обновлен в новой системе файлов/папок.

cordova platform android -v

это вернулось → 8.0.0

То, что я сделал, было:

cordova platform rm android
cordova platform add [email protected]

а потом:

cordova plugin add <plugin>

Таким образом, установка плагина не показала ошибок... но имейте в виду, что после команды добавления плагина cordova версия платформы Android автоматически обновилась до 8.0.0... поэтому мне пришлось повторить процесс, чтобы добавить другой плагин с та же проблема.

После повторения этого процесса 2 раза, я наконец получил проект для запуска с 2 установленными плагинами

Ответ 10

У меня была такая же проблема, я решил ее, выполнив следующую команду в папке приложения:

ionic hooks add

Ответ 12

Изменение разрешений

/Приложения/Путь приложения /Studio Studio/Содержание/ gradle/gradle -.. */bin/gradle

Ответ 13

это вопрос разрешения chmod cmd поможет вам

Шаг 1: используйте cmd sudo cordova run android --verbose

Шаг 2: найдите ниже строки, она может варьироваться в зависимости от места установки:

/Applications/Android Studio.app/Contents/gradle/gradle-4.1/bin/gradle

шаг 3: запустите cmd с вашим местоположением

sudo chmod -R 777 /Applications/Android\ Studio.app

шаг 4: запустить cmd cordova build android

Ответ 14

выполните команду cordova с опцией --verbose. Не добавляйте префикс команды к ионному кордову. Это скажет вам, где проблема доступа. Для меня это была проблема, когда gradlew был установлен в моей системе без прав на выполнение. Как только я добавил возможность выполнения к gradlew, ошибка доступа исчезла.

Ответ 15

Вы должны исправить "gradle", который будет выполняться вашей системной учетной записью:

$ sudo chmod 755 /Applications/Android\ Studio.app/Contents/grad le/gradle-<VERSION>/bin/gradle

У меня была такая же проблема, но теперь она работает для меня.

Ответ 16

chmod 755 platforms/android/gradlew