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
Ответ 11
Я получил отличное решение.
Это проблема новой версии Android Studio. Поэтому понизьте эту версию до 2.3.3 https://developer.android.com/studio/archive.html
Ответ 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