it-swarm.com.de

cordova-Android-Anforderungen sind fehlgeschlagen: "Eine installierte Version von Gradle konnte nicht gefunden werden"

Ich versuche, ein Cordova Android-Projekt mit den neuesten Tools zu erstellen. Ich habe die Anweisungen hier befolgt:

$ cordova create myApp com.myCompany.myApp myApp
$ cd myApp
$ cordova platform add [email protected] --save
$ cordova requirements Android --verbose

Aber das Ergebnis ist:

Running command: Android list targets
Command finished with error code 0: Android list,targets

Requirements check results for Android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed Android-25,Android-23
Gradle: not installed 
Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle 
in your path, or install Android Studio
Error: CordovaError: Some of requirements check failed
    at /usr/local/nodejs_next/lib/node_modules/cordova/src/cli.js:401:45
    at _fulfilled (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:787:54)
    at self.promiseDispatch.done (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:816:30)
    at Promise.promise.promiseDispatch (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:749:13)
    at /usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:557:44
    at flush (/usr/local/nodejs_next/lib/node_modules/cordova/node_modules/q/q.js:108:17)
    at _combinedTickCallback (internal/process/next_tick.js:73:7)
    at process._tickCallback (internal/process/next_tick.js:104:9)

Es scheint nicht in der Lage zu sein, Gradle zu finden (nicht sicher, wo das sein soll).

Ich habe Berichte von Problemen mit Cordova und Android SDK Tools 25.3 gesehen, aber das scheint anders zu sein, und ich habe 25.2.3 (siehe unten).

Ich habe folgendes (dies ist auf CentOS 6.8):

$ cordova --version
6.5.0

$ node --version
v6.10.2

$ npm --version
3.10.10

$ Java -version
openjdk version "1.8.0_121"

$ echo $Java_HOME
/usr/lib/jvm/Java-1.8.0

$ echo $Android_HOME
/usr/local/Android-sdk

# I installed the Android SDK from here
# https://developer.Android.com/studio/index.html#downloads
# under "Get just the command line tools"

$ /usr/local/Android-sdk/tools/bin/sdkmanager --list
Installed packages:
  Path                        | Version | Description                    | Location                    
  -------                     | ------- | -------                        | -------                     
  build-tools;23.0.3          | 23.0.3  | Android SDK Build-Tools 23.0.3 | build-tools/23.0.3/         
  build-tools;25.0.2          | 25.0.2  | Android SDK Build-Tools 25.0.2 | build-tools/25.0.2/         
  extras;Android;m2repository | 47.0.0  | Android Support Repository     | extras/Android/m2repository/
  extras;google;m2repository  | 46      | Google Repository              | extras/google/m2repository/ 
  patcher;v4                  | 1       | SDK Patch Applier v4           | patcher/v4/                 
  platform-tools              | 25.0.4  | Android SDK Platform-Tools     | platform-tools/             
  platforms;Android-23        | 3       | Android SDK Platform 23        | platforms/Android-23/       
  platforms;Android-25        | 3       | Android SDK Platform 25        | platforms/Android-25/       
  tools                       | 25.2.3  | Android SDK Tools 25.2.3       | tools/                      

UPDATE:

Es wird anscheinend nirgendwo in Cordovas oder Android-Dokumenten erwähnt. Wenn Sie jedoch die Android-Befehlszeilenprogramme ohne Android Studio verwenden, müssen Sie Gradle manuell installieren. Sobald Sie dies getan haben und sich auf Ihrem PFAD befindet, wird dieser Fehler behoben.

Eine weitere Sache, die mich verwirrte: In älteren Versionen von Android SDK-Tools gab es ein Gradle-Wrapper-Skript in tools/templates/gradle/wrapper/gradlew. Dies kann auch zur Installation von Gradle verwendet werden, aber ich fand es einfacher, es einfach manuell zu installieren. Dies scheint seit der neuesten Version entfernt worden zu sein.

39
JW.

Lösung für Linux mit apt-get (zB: Ubuntu, Debian)

Ich habe ein ganz ähnliches Problem. Ich habe einen Fehler erhalten:

Error: Could not find an installed version of Gradle either in Android Studio,
or on your system to install the gradle wrapper. Please include gradle 
in your path, or install Android Studi

aber ohne Ausnahme. Ich habe es auf Ubuntu von gelöst 

Sudo apt-get install gradle

Ich habe auch Befehle gefunden, mit denen die neueste Version von Gradle in Ubuntu installiert werden kann. Es funktioniert nur, wenn der erste Befehl zuvor ausgeführt wurde (wahrscheinlich sind einige Abhängigkeiten falsch).

Sudo add-apt-repository ppa:cwchien/gradle
Sudo apt-get update
Sudo apt-get install gradle-ppa

https://wtanaka.com/node/8079

Wenn es nicht funktioniert, versuchen Sie Folgendes:

export PATH=$PATH:/opt/gradle/gradle-3.5/bin

Mehr Info:

https://askubuntu.com/questions/915980/package-is-install-und-is-not-detected-gradle/915993#915993

Für CentOS

Die Installationsanweisung gradle für CentOS befindet sich unter diesem Link

https://Gist.github.com/parzonka/9371885

Aktualisieren

Nun installiere ich gradle von sdkman es ist so etwas wie nvm für node. 

Installieren Sie sdkman

curl -s "https://get.sdkman.io" | bash 

Gradle installieren

sdk install gradle 4.0.2
52
Daniel

Wenn Sie Android Studio installiert haben, sollten Sie Folgendes versuchen: 

export PATH="$PATH:/home/<username>/Android-studio/gradle/<gradle-4.0>/bin" 

Das hat mein Problem gelöst.

33

Ich verwende Cordova Version 7.0.1 und Cordova Android Version ist 6.2.3. Ich war mit dem Problem während der Ausführung von Android konfrontiert. Ich verwende nur Cordova-CLI und verwende kein Android-Studio. 

Die schnelle Problemumgehung für dieses Problem, bevor es in Cordova behoben wurde, lautet wie folgt:

  1. Suchen Sie nach check_reqs.js-Datei im Ordner platform\Android\cordova\lib
  2. Bearbeiten Sie den else-Teil der androidStudioPath-Variablennullprüfung in der get_gradle_wrapper-Funktion wie folgt:

Vorhandener Code:

else { //OK, let's try to check for Gradle! return forgivingWhichSync('gradle'); }

Modifizierter Code:

else { //OK, let's try to check for Gradle! var sdkDir = process.env['Android_HOME']; return path.join(sdkDir, 'tools', 'templates', 'gradle', 'wrapper', 'gradlew'); }

HINWEIS: Diese Änderung muss jedes Mal durchgeführt werden, wenn die Android-Plattform entfernt und erneut hinzugefügt wird

UPDATE: In meinem Fall hatte ich bereits einen gradle-Wrapper in meinem Android-SDK und ich möchte nicht unbedingt gradle explizit installieren. Daher habe ich diese Problemumgehung vorgenommen, um meine Auswirkungen und Anstrengungen zu minimieren

12
Gandhi

Für Windows:

-Laden Sie die letzte Version von Gradle herunter ( https://gradle.org/releases )

-Erstellen Sie einen Ordner und entpacken Sie Dateien (ich verwende C:\Programme (x86)\gradle)

- Kopieren Sie den Pfad mit dem enthaltenen bin-Verzeichnis (C:\Programme (x86)\gradle\bin).

- Setzen Sie den Pfad C:\Programme (x86)\gradle\bin (in meinem Beispiel) auf "Pfadumgebungsvariablen".

Variablenname "Path" und Variablenwert "C:\Programme (x86)\gradle\bin" für beide: Tabelle der Benutzervariablen und Tabelle der Systemvariablen

Möglicherweise müssen Sie die "Prompt-Kommandozeile" erneut öffnen.

Geben Sie zum Testen gradle in Prompt ein.

3
Diogo Rodrigues

Für mich bestand das Problem darin, dass meine Android-Version noch auf 6.1.2 war, die nicht mit dem neuesten Android Studio 2.3.1 kompatibel ist.

Was ich also gemacht habe, war laufen

cordova platform rm Android cordova platform add [email protected]

3
julianalimin

Ich folgte diesem Qiita Tutorial, um meine Probleme zu lösen.

Umgebung:Cordova 8.1.1, Android Studio 3.2, cordova-Android 7.0.0

  1. Setzen Sie gradle PATH in .profile-Datei.
 export PATH = "/ Applications/Android Studio.app/Contents/gradle/gradle-4.6/bin":$PATH
  1. Exportieren Sie die Einstellung.
 source ~/.profle 
  1. Bauen Sie jetzt ein Cordova-Projekt.
 Cordova Build Android 

PS: Wenn [email protected] Buildfehler verursacht, downgraden Sie Ihre Plattformversion auf 6.3.0.

2
Rob JS

Um die Frage von OP zu beantworten:

Da Sie unter Linux sind, müssen Sie gradle selbst installieren, vielleicht nach this guide und dann einen Eintrag in PATH in einen Ordner einfügen, der gradle ausführbare Datei enthält.

Cordova hat einen Code, nach dem Gradle gesucht werden soll, wenn Sie Android Studio haben, jedoch nur für Mac und Windows. Siehe hier:

https://github.com/Apache/cordova-Android/blob/e13e15d3e9aa4b9a61c6ece434e7c023fa5c3553/bin/templates/cordova/lib/check_reqs.js#L101-L132


Teilweise mit OPs Frage verbunden, da ich unter Windows bin.

Nach dem Upgrade auf Android Studio 2.3.1, [email protected], [email protected] ([email protected]) hatte ich Build-Probleme aufgrund fehlender Ziele 25 und Gradle.

Das erste Problem wurde mit einem Kommentar von X.Zhang gelöst (dh Android in avdmanager). Übrigens scheint es eine Verpflichtung zu sein, zu beheben, dass auf github gelandet ist also sollte Cordova-Android das in 6.3.0 beheben (aber ich habe es nicht t test).

Die zweite Ausgabe war wie folgt:

Das Problem stellte sich heraus, dass process.env['ProgramFiles'] zu 'C:\\Program Files (x86)'; ausgewertet wird, wohingegen ich Android Studio in C:\\Program Files verwendet.

Der schnelle Hack besteht also darin, diesen Wert entweder zu überschreiben oder Android Studio an einem anderen Ort zu installieren.

// platforms/Android/cordova/lib/check_reqs.js

module.exports.get_gradle_wrapper = function() {
    var androidStudioPath;
    var i = 0;
    var foundStudio = false;
    var program_dir;
    if (module.exports.isDarwin()) {
        // ...
    } else if (module.exports.isWindows()) {
        // console.log(process.env['ProgramFiles'])';
        // add one of the lines below to have a quick fix...
        // process.env['ProgramFiles'] = 'C:\\Program Files (x86)';
        // process.env['ProgramFiles'] = 'C:\\Program Files';
        var androidPath = path.join(process.env['ProgramFiles'], 'Android') + '/';

Ich bin nicht sicher, was der richtige Fix wäre, um beide Ordner auf robuste Weise zu handhaben (abgesehen von dem Durchlaufen beider Ordner).

Natürlich muss dies im Cordova-Android-Projekt selbst behoben werden. Andernfalls sind Ihre Fixes weg, wenn Sie cordova platform rm ausführen.

Ich habe das Ticket auf Cordova JIRA geöffnet:

https://issues.Apache.org/jira/browse/CB-12677

2
jakub.g

Erweitern von https://stackoverflow.com/users/5540715/surendra-shrestha answer für Linux-Benutzer (~ mint):
1. Installieren Sie Android Studio (Viele Tools wurden für die Befehlszeile nicht mehr verwendet, daher ist dies wahrscheinlich erforderlich). Wenn Sie die Anweisungen des Autors befolgen, wird Ihr Android Studio in/usr/local/Android-studio/installiert. Zum Zeitpunkt des Schreibens ist die Gradle-Version in Android Studio 3.2. Schauen Sie sich Ihre Version mit ls /usr/local/Android-studio/gradle/ an.
2. Fügen Sie Ihren Gradle-Befehl hinzu. Dies kann durch Erweitern des PATH erfolgen, wie @ surendra-shrestha vorschlägt (sollte in ~/.bashrc geschrieben werden, um die PATH-Änderung beizubehalten), und einen Alias ​​echo 'export alias gradle=/usr/local/Android-studio/gradle/gradle-3.2/bin/gradle' >> ~/.bashrc && source ~/.bashrc hinzufügen. Oder einen symbolischen Link erstellen: Sudo ln -sn /usr/local/Android-studio/gradle/gradle-3.2/bin/gradle /usr/bin/gradle (dies war meine Wahl).
3. Führen Sie cordova requirements aus, um zu überprüfen, ob alles in Ordnung ist. Es sollte etwa Folgendes ausgegeben werden:

Requirements check results for Android:
Java JDK: installed 1.8.0
Android SDK: installed true
Android target: installed Android-26,Android-25,Android-24,Android-23,Android-22,Android-21,Android-19,Google Inc.:Google APIs:19
Gradle: installed /usr/local/Android-studio/gradle/gradle-3.2/bin/gradle
2
jgpATs2w

gleiches problem aber sehr einfach auf mac mit brew:

  • brauupdate
  • brauen installieren gradle
1
Chris Skura

Ich habe viele ausprobiert, aber es hat nicht funktioniert.

  1. Ich habe gradle mit macos port installiert
  2. Ich habe den Pfad GRADLE_HOME so gesetzt, wie er nach der Installation von Gradle gesagt wurde
  3. Ich habe ausgeführt:

Sudo chmod -R a+rwx /Library/Java/JavaVirtualMachines *

Sudo chmod -R a+rwx *

Sudo chmod 777 {your-gradle-path}

Es fing sofort an zu arbeiten

1
Abhishek Mathur

mac OS

Gradle kann auf dem Mac hinzugefügt werden, indem die folgende Zeile zu ~/.bash_profile hinzugefügt wird. Wenn die Datei nicht vorhanden ist, verwenden Sie bitte touch ~/.bash_profile. Diese versteckte Datei kann im Finder mit Command + Shift + sichtbar gemacht werden.

export PATH=${PATH}:/Applications/Android\ Studio.app/Contents/gradle/gradle-4.6/bin/

Verwenden Sie die Quelle ~/.bash_profile, um den neuen Pfad direkt zu laden.

1
Coanda

In Terminal laufen:

$ Sudo apt-get update
$ Sudo apt-get install gradle

Das funktioniert für mich in Ubuntu 18.04

0
mahfuz

Aktualisieren Sie Ihr Cordova auf die neueste Version, und das Problem sollte behoben werden .. Falls das Problem nicht behoben wurde, geben Sie den Pfad in der Umgebungsvariablen an (im Falle von Windows). Beispiel: Systemvariable Wertname GRADLE_HOME Wert D:\Android\Android Studio\gradle\gradle-4.3.1 (bitte durch Pfad ersetzen

0

Möglicherweise haben Sie das neueste Android Studio 2.3.1 installiert, der Befehl Android list targets wurde in avdmanager list targets geändert. So können Sie es beheben:

füge Pfad <Android-sdk>/tools/bin zu PATH hinzu, dies ist für MacOX.

export PATH="$PATH:/Users/<username>/Library/Android/sdk/tools/bin"

Ändern Sie Ihren Cordova-Projektcode <your-cordova-project>/platforms/Android/cordova/lib/Android_sdk.js.

veränderung

module.exports.list_targets_with_Android = function() {
    return superspawn.spawn('Android', ['list', 'targets'])

zu

module.exports.list_targets_with_Android = function() {
    return superspawn.spawn('avdmanager', ['list', 'targets'])
0
Xiaohui Zhang