簡體   English   中英

Cordova項目錯誤:生成EACCES

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM