[英]Cordova Project Error : spawn EACCES
就在一周前,我能夠在同一台Mac機器上運行相同的項目,但是將我的系統android studio升級到3.0穩定版后,此Cordova項目已停止從控制台和通過android studio進行構建。
請檢查以下是控制台運行命令異常日志
Last login: Mon Nov 6 11:47:13 on ttys000
XKL-0439:~ LuckyRana$ sudo cordova create ERL com.xchanging.erla ERL
Password:
Creating a new cordova project.
XKL-0439:~ LuckyRana$ cordova platform add android --save
Error: Current working directory is not a Cordova-based project.
XKL-0439:~ LuckyRana$ cd ERL
XKL-0439:ERL LuckyRana$ sudo cordova platform add android --save
Using cordova-fetch for cordova-android@~6.3.0
Adding android project...
Creating Cordova project for the Android platform:
Path: platforms/android
Package: com.xchanging.erla
Name: ERL
Activity: MainActivity
Android target: android-26
Subproject Path: CordovaLib
Android project created with cordova-android@6.3.0
Discovered plugin "cordova-plugin-whitelist" in config.xml. Adding it to the project
Installing "cordova-plugin-whitelist" for android
This plugin is only applicable for versions of cordova-android greater than 4.0. If you have a previous platform version, you do *not* need this plugin since the whitelist will be built in.
Adding cordova-plugin-whitelist to package.json
Saved plugin info for "cordova-plugin-whitelist" to config.xml
--save flag or autosave detected
Saving android@~6.3.0 into config.xml file ...
XKL-0439:ERL LuckyRana$ cordova requirements android
Requirements check results for android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed android-27,android-26,android-25,android-24,Google Inc.:Google APIs:24,android-23,Google Inc.:Google APIs:23,android-22,Google Inc.:Google APIs:22,android-21,Google Inc.:Google APIs:21
Gradle: installed /Applications/Android Studio.app/Contents/gradle/gradle-4.1/bin/gradle
XKL-0439:ERL LuckyRana$ cordova build android --verbose
No scripts found for hook "before_build".
No scripts found for hook "before_prepare".
Checking config.xml and package.json for saved platforms that haven't been added to the project
Config.xml and package.json platforms are the same. No pkg.json modification.
Package.json and config.xml platforms are different. Updating config.xml with most current list of platforms.
Error: EACCES: permission denied, open '/Users/LuckyRana/ERL/package.json'
XKL-0439:ERL LuckyRana$ sudo cordova run android
ANDROID_HOME=/Users/LuckyRana/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_144.jdk/Contents/Home
Error: spawn EACCES
XKL-0439:ERL LuckyRana$
Android Studio錯誤日志:
找不到com.android.tools.build:gradle:2.3.3。 在以下位置搜索: https : //repo1.maven.org/maven2/com/android/tools/build/gradle/2.3.3/gradle-2.3.3.pom https://repo1.maven.org/maven2 /com/android/tools/build/gradle/2.3.3/gradle-2.3.3.jar必需:project:CordovaLib添加Google Maven存儲庫並同步項目Open File
自己找到解決方案,將以下給定的buildscript和依賴項復制/粘貼到android studio Cordova庫'build.gradle'中,也粘貼到項目級別'build.gradle'中:
buildscript {
repositories {
mavenCentral()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.0'
}
}
現在我可以再次構建該項目。
更新:事實證明這是此處的已知Cordova / Android Studio 3.0問題。 基本上,Android Studio 3刪除了對Cordova使用的舊的按慣例構建項目目錄結構的支持。 因此,只有更舊的android gradle插件和gradle版本對才起作用(如下所示),直到Cordova修復了該問題。
MacOS X version -> 10.12.6
node --version -> 8.0.0
npm --version -> 5.5.1
cordova --version -> 7.1.0
Android Studio IDE -> 3.0
解決問題的步驟:
myApp > cordova run android
ANDROID_HOME=/Users/Luckyjohn/Library/Android/sdk
JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_92.jdk/Contents/Home
Subproject Path: CordovaLib
Error: spawn EACCES
1)將Cordova“ myApp / platforms / android”項目的Android gradle插件和gradle版本對更改為Cordova gradle構建配置和Android Studio 3.0 IDE支持的對。 舊值在下面注釋掉。
.../android build.gradle:
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
//classpath 'com.android.tools.build:gradle:2.2.3'
}
.../android/CordovaLib build.gradle:
dependencies {
classpath 'com.android.tools.build:gradle:2.3.0'
//classpath 'com.android.tools.build:gradle:2.2.3'
.../gradle/wrapper/gradle-wrapper.properties:
distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip
#distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-all.zip
2)Cordova平台“ android”目錄和所有子目錄上的chmod執行位:
cd to .../myApp/platforms
chmod -R 755 android
不確定是否需要這樣做,請先執行#1並進行測試。
3)我對Android sdk目錄及其所有子目錄也做了相同的操作。 不確定是否需要這樣做,請先執行#1並進行測試。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.