可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
If I follow this steps to create a new app:
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 android@6.2.2 //6.1.x has a bug
Rubens-MacBook-Pro:myApp rlopez$ ionic build android
I get this output:
> ionic-hello-world@ 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
Running ionic info gives the following:
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
What am I doign wrong? Is this a bug in Ionic?
[Edit]
Running ionic build android --verbose
gives the following output:
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:
Got the same error today. Thanks to the comments above, here is how I fixed it.
Ran:
cordova build android --verbose
and it showed me where it got the "Permission Denied" error... In my case it was:
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
To fix, ran:
sudo chmod 755 /Applications/Android\ Studio.app/Contents/gradle/gradle-2.2.1/bin/gradle
...and
...
...
:cdvBuildDebug
BUILD SUCCESSFUL
Total time: 2 mins 44.195 secs
Hope it helps.
回答2:
Above solutions didn't work for me. I solved error with this command:
chmod 755 platforms/android/gradlew
回答3:
For those who gets similar error after updating Android Studio to version 3.x, you can run the following command to fix it:
sudo chmod 755 /Applications/Android\ Studio.app/Contents/gradle/gradle-4.1/bin/gradle
Hopefully it helps!
回答4:
Only for OSX
--- Go to Applications Folder from finder and Simply rename Android Studio App Package name by removing space between.
Before : Android Studio
After: AndroidStudio
There is no issue of permissions by default just the space was the problem.
Cheers !
回答5:
Just encountered the same issue, and I don't think it has anything to do with sudo - that command is simply missing the execute permission
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:
Running ionic build android --verbose
gives the following output:
/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
Changing the permissions of /Applications/Android Studio 2.4 Preview.app/Contents/gradle/gradle-3.4.1/bin/gradle
solves the problem.
回答8:
I was able to fix by running the following command in Terminal
sudo chmod 755 "/Applications/Android Studio.app/Contents/gradle/gradle-4.1/bin/gradle"
After running that I was able to run this command successfully
ionic cordova build android --release
回答9:
My problem wasn't permissions... I couldn't quite find the origin of the problem but I did a workaround. this error was happening when I was trying to add a plugin which wasn't updated to the new files/folder system.
cordova platform android -v
it returned -> 8.0.0
What I did was:
cordova platform rm android
cordova platform add android@6.4.0
and then:
cordova plugin add <plugin>
This way the plugin installation showed no errors.. but keep in mind that after the cordova plugin add command, the android platform version automatically updated to 8.0.0 again... so I had to repeat the process in order to add another plugin with the same issue.
After repeating this process 2 times I finally got the project to run with the 2 plugins installed
回答10:
I had the same issue, I solved it by running the command below in the app folder:
ionic hooks add
回答11:
I got a great solution.
This is the problem of new version of Android Studio. So downgrade this version to 2.3.3 https://developer.android.com/studio/archive.html
回答12:
chmod 755 platforms/android/gradlew
回答13:
Changing the permissions of
/Applications/Android Studio App Path /Contents/gradle/gradle-..*/bin/gradle
回答14:
it is a permission issue chmod cmd will help you
step 1: use cmd sudo cordova run android --verbose
step 2: find below line it may vary on your install location:
/Applications/Android Studio.app/Contents/gradle/gradle-4.1/bin/gradle
step 3: run cmd with your location
sudo chmod -R 777 /Applications/Android\ Studio.app
step 4: run cmd cordova build android
回答15:
run the cordova command with --verbose option. Do not prefix the command with ionic cordova. This will tell you where the access problem is. For me it was a problem where gradlew was installed on my system without execution privileges. Once i add execution ability to gradlew, the eaccess error went away.
回答16:
You have to fix the 'gradle' to be executable by your system account:
$ sudo chmod 755 /Applications/Android\ Studio.app/Contents/grad
le/gradle-<VERSION>/bin/gradle
I had same trouble but now it's working for me.