Ich verwende Cordova 6.4.0 unter Windows 7, erhalte jedoch diesen Fehler, sobald ich versucht habe, die Android-Version zu erstellen:
Die Java Home-Variable ist korrekt auf den JDK-Pfad eingestellt, aber ich weiß nicht, warum ich dieses Problem bekomme. Irgendwelche Vorschläge bitte?
cordova
cordova-cli
MadNeox
quelle
quelle
Antworten:
Deinstallieren Sie alle vorherigen JDKs einschließlich 1.8. Installieren Sie JDK 1.8
quelle
Add or Remove Programs/Program Features
inWindows OS
. Entfernen Sie anschließend alle früheren Java-Versionen. Ich hatte eineversion 7
ebenfalls installiert und nachuninstalling
ihm,cordova run android
gearbeitet. Viel Glück.Unter Linux (Debian / Ubuntu) kann dies durch Auswahl eines Java 1.8 SDK in gelöst werden
Das
JAVA_HOME
direkte Ändern der env-Variablen scheint keine Auswirkungen zu haben.BEARBEITEN: Antworten auf die Kommentare: Dies hat wahrscheinlich damit zu tun, dass neue Java-Installationen von Debian (und anscheinend Ubuntu) über den Paketmanager die
JAVA_HOME
Umgebungsvariable nicht verwenden , um den Speicherort der JRE zu bestimmen. Weitere Informationen finden Sie in diesem und diesem Beitrag .quelle
java
aber nichtjavac
! Jetzt muss Java 9 nicht mehr deinstalliert werden :)JAVA_HOME
auf das rechte 1.8 JDK verwiesen wurde, erfüllte nur die Aktualisierung des Systemstandards Cordova.Sie müssen keine höhere Version von sdk deinstallieren. Installieren Sie einfach jdk1.8.0_161 oder nicht, wenn es bereits installiert ist.
JAVA_HOME
Stellen Sie nun einfach die USER-Variable (nicht die Systemvariable) ein, wie in der folgenden Abbildung gezeigt.Auf diese Weise müssen Sie keine höhere Version deinstallieren und das Problem wird behoben.
quelle
Was funktionierte, war die Deinstallation von jdk 9 und die Neuinstallation von jkd 8.x.
Gehen Sie auf dem Mac zum Deinstallieren zum Terminal und führen Sie die folgenden Schritte aus:
Installieren Sie anschließend jdk 8.x, indem Sie das .dmg-Paket von Oracle herunterladen.
quelle
Möglicherweise haben Sie eine Version, die größer als 8 ist, aber Cordova unterstützt nur JDK 1.8. Diesen Link anzeigen Cordova-Dokumentation
Ich habe mir den Code angesehen, der tatsächlich nach der Versionsnummer Ihres Java sucht. Suchen Sie nach Folgendem: module.exports.check_java in platform / android / cordova / lib / check_reqs.js . in Zeile 220. Sie sehen einen regulären Ausdruck und einen Kommentar des Teams, dass Java 10 in Zukunft unterstützt wird.
Der vorhandene reguläre Ausdruck schlägt fehl, wenn er mit den neuesten Java-Versionen wie Java 10 ausgeführt wird. Dies liegt daran, dass Java 8 oder 9 im folgenden Format gespeichert werden: 1. [8-9]. ** Java 10 wird jedoch gespeichert als 10. ** und der reguläre Ausdruck sucht nach einer Version im Format 1. [8-9]. **
Meine Lösung:
Sie müssen Ihre aktuelle Version von JRE oder JDK nicht deinstallieren, da das Installationsprogramm jede Version in einem bestimmten Ordner installiert.
1- Installieren Sie die Version Java 8 Folgen Sie diesem Link
2- Aktualisieren Sie Ihre Umgebungsvariablen:
indem Sie sie auf den Speicherort zeigen, an dem JRE 8 und JDK 8 installiert wurden.
Öffnen Sie eine neue Terminalsitzung und führen Sie den fehlgeschlagenen Befehl aus. Es sollte jetzt funktionieren.
Funktioniert nicht?
Sollte es aus anderen Gründen fehlschlagen, möglicher Debugging-Prozess:
quelle
Das Deinstallieren älterer Versionen von JDK hätte funktioniert. Aber es kann eine Problemumgehung sein, denke ich. Ich hatte das gleiche Problem und stellte fest, dass sowohl die neue Version des JDK als auch der JDK-Pfad der älteren Version in
'path
'Umgebungsvariable' erwähnt wurden .Das Entfernen des JDK-Pfads der älteren Version aus
'path
der Umgebungsvariablen hat mir geholfen. Hoffe es hilft auch jemandem.quelle
Ich habe festgestellt, dass meine Pfadumgebungsvariable auf Java 1.7 zeigt, während JAVA_HOME auf 1.8 zeigt, also habe ich die Pfadvariable auf 1.8 bearbeitet und es ging mir gut.
quelle
In meinem Fall zeigte JAVA_HOME auf C: \ Programme (x86) \ Java \ jdk1.7.0_55
Als ich schrieb, wo Java in cmd C: \ Programme (x86) \ Java \ jdk1.7.0_55 zusammen mit dem Pfad java.exe ausgab, habe ich die Variable JAVA_HOME von Umgebungsvariablen in C: \ Programme \ Java geändert \ jdk1.8.0_20 & es hat funktioniert, also hatte ich anscheinend 2 jdk-Instanzen & cordova benötigt die Version 1.8. * eine.
quelle
Ich stimme @Hozington zu. Dies sollte der Fehler im Cordova-Code beim Erkennen der Java-Version sein. Was ich getan habe ist:
JAVA_HOME
in den Pfad von JDK 8 und ändern Sie auch diepath
Variable.cordova build
erneut aus.Und der Fehler ist verschwunden!
quelle
MAC: Navigieren Sie zu: / Library / Java / JavaVirtualMachines Stellen Sie sicher, dass Sie nur jdk1.8.0_201.jdk haben. Wenn Sie viele haben, entfernen Sie andere JDK
quelle
Wenn Sie viele JDK-Versionen haben, können Sie diese ausführen
vor dem Cordova Build, um eine bestimmte Version von JDK zu verwenden :)
quelle
Leute, um die Mischung unter Windows richtig zu machen , müssen Sie Folgendes tun
C:\Program Files\Java\jdk1.8.0_162
Stellen Sie sicher, dass Sie das nicht\bin
im Wert hinzufügen .;
und fügen Sie diesen Wert zum Systempfad hinzu, z. B.C:\Program Files\Java\jdk1.8.0_162\bin;
Hier\bin
wird der hinzugefügt.quelle
Manchmal ändert sich der Pfad und
java-home
funktioniert nicht. Sie müssen hinzufügenauch auf den Umgebungsvariablenpfad.
quelle
Heute habe ich diesen Fehler auch
Cordova : Requirements check failed for JDK 1.8 or greater
in meinem Mac OS beim Erstellen der Ionic App erhalten, als ich den Befehlionic cordova build --release android
über das Terminal ausführte.Der folgende Befehl behebt mein Problem: -
Hoffe es wird jemandem in Zukunft helfen!
quelle
Diese Fehlermeldung verwirrt den Benutzer, der Erfolgsbildschirm wie folgt.
Die Fehlermeldung veranlasst den Benutzer, den Build-Fehler mit der JAVA_HOME-Konfiguration zu beheben. Das eigentliche Problem liegt aber nicht nur im JAVA_HOME.
Ich behebe dieses Problem mit der korrekten Konfiguration in JAVA_HOME und dem Pfad in "Systemvariable".
Hope kann helfen, das Problem zu beheben, JDK jedoch nicht neu installieren.
quelle
Die Antwort von MadNeox ist korrekt. Ich hatte ein ähnliches Problem, bei dem ich JDK 9 installiert hatte, sowie die Version 1.8
Ich habe zuerst versucht, indem ich jdk 9 beibehalten und 1.8 entfernt habe, um einen Fehler anzuzeigen. Die Überprüfung der Anforderungen ist fehlgeschlagen
Dann habe ich versucht, jdk9 zu deinstallieren und 1 neu zu installieren. Dieses Mal wurde angezeigt, dass die javac-Version nicht ausgeführt werden konnte
Nachdem ich einige Zeit mit den Umgebungsvariablen herumgespielt hatte, bekam ich endlich die Lösung
Zu diesem Zeitpunkt hat mein System nur JDK 1.8 Cordova Version: 7.1.0
- Registerkarte "Umgebungsvariablen öffnen" - Erstellen Sie unter Benutzervariablen eine neue Variable PATH - Geben Sie den folgenden Wert C ein: \ Programme \ Java \ jdk1.8.0_151 \ bin (kann sich ändern, je nachdem, wo Sie Ihr jdk installiert haben)
Dies sollte Ihr Problem lösen. Hoffe, es hilft
Obwohl die Antwort bereits gegeben wurde, brauchte ich einige Zeit, um herauszufinden, wo ich falsch lag, und beschloss, dies zu posten, in der Hoffnung, dass dies die Zeit eines anderen spart
quelle
Stellen Sie einfach sicher, dass auf dieselben JDK-Versionen (in diesem Fall 1.8) über die
PATH
Umgebungsvariable und zugegriffen werden kannJAVA_HOME
. Beispiel: WennJAVA_HOME=C:\Program Files\Java\jdk1.8.0_152
dannPATH
sollte die Variable auch den obigen Pfad und vor allem einen anderen Pfad enthalten, falls JDK / JRE bereits in derPATH
Variablen erwähnt ist. Sie können andere Versionen deinstallieren, wenn keine andere Anwendung eine andere Java-Version verwendet.quelle
Wenn Sie sowohl jdk8 als auch jdk9 installiert haben, müssen Sie überprüfen, um welche Version es sich handelt
im Pfad und wo JAVA_HOME zeigt.
In dem von Ihnen geposteten Protokoll sehe ich, dass JAVA_HOME zum JDK9 führt.
Ändern Sie Ihr Globel JAVA_HOME env var so, dass es auf JDK8 abzielt, oder Sie können JAVA_HOME in Powershell ändern, bevor Sie die Cordova-CLI verwenden, wenn Sie JDK8 nur für Cordova verwenden möchten:
quelle
Wenn Sie mehrere Java-Versionen installiert haben und diese behalten müssen, müssen Sie folgende Dinge überprüfen:
quelle
Ich hatte das gleiche Problem mit jdk1.8.0_201. Es wurde behoben, als ich JAVA_HOME = C: \ Programme \ Java \ jdk1.8.0_201 erstellt und "C: \ Programme \ Java \ jdk1.8.0_201 \ bin" hinzugefügt habe Pfad - Variable
quelle
Ich habe (Open) JDK 8 und 11 unter Windows 10 installiert und hatte das gleiche Problem. Für mich hat folgendes funktioniert:
quelle
Es ist eine alte Frage, aber da ich nur das gleiche Problem hatte, aber der Fehler eine andere Quelle hatte, hier eine kurze Antwort.
Problem unter Windows (nur) und mit der Webstorm IDE 2019.2
In der Version 2019.2 hatte Webstorm ein Problem, da intern open jdk für die Variable% JAVA_HOME% anstelle des (vom Betriebssystem) anvisierten Java-jdk verwendet wurde.
In meinem Fall (ja, es ist alt, es ist ein altes Cordova-Projekt ...)
Ausführen
java -version
in Windows cmd.exe:aber
java -version
im Webstorms-Terminal ausführen :Ein Fix wurde mit dem später (heute) veröffentlichten Patch, Version 2019.2.1, geliefert. Jetzt verwendet Webstorm die Variable os% JAVA_HOME% wie gewünscht und die
java -version
Ausgabe ist in beiden Fällen identisch.Hoffe es hilft jemandem!
quelle
MacOS antwortet mit mehreren installierten Java-Versionen und ohne Deinstallation
Zeigen Sie mir, welche Java-Versionen ich installiert habe:
So stellen Sie es auf meine jdk1.8-Version ein:
So stellen Sie es auf meine jdk11-Version ein:
-------------------------------------------------- ------------------------
Beachten Sie, dass trotz der Aussagen in der Nachricht anscheinend Version 1.8 gewünscht wird und diese Nachricht ausgelöst wird, wenn Sie eine spätere Version haben.
Was folgt, sind meine früheren Versuche, die mich zu der obigen Antwort führten, die dann funktionierte ... Je nachdem, was installiert ist, müssen Sie möglicherweise etwas anderes tun. Vielleicht helfen diese Hinweise:
Stellen Sie es auf meine jdk1.8-Version ein
Stellen Sie es auf meine jdk11-Version ein
... aber eigentlich funktioniert das nicht, denn
/usr/bin/javac
es läuft immer noch zuerst:... um zu sehen, was zuerst auf dem Weg läuft:
Das heißt, ich kann das überschreiben
/usr/bin/javac
... siehe die Befehle oben in der Antwort ...Der Befehl, es mit jdk1.8
ln
oben in dieser Antwort festzulegen , hat bei mir funktioniert.quelle
quelle
Es scheint, dass das Android SDK Java 9 nicht unterstützt. Downgrade auf 8, wenn Sie nicht bis zu JDK 1.8 zurückkehren möchten, was für mich lächerlich ist. JDK 8 funktioniert für mich, aber stellen Sie sicher, dass die Umgebungsvariable JAVA_HOME korrekt auf den Speicherort Ihrer JDK-Installation eingestellt ist.
quelle
Gemäß der offiziellen Cordova-Dokumentation werden nur JDK 1.8 unterstützt, die bis zum Datum (April 2018) nicht höher sind . Oder es liegt ein Problem mit dem Versionserkennungsskript in Cordova vor.
Cordova: Installieren der Anforderungen
quelle
Ich habe gerade einen älteren JDK-Ordner mit umbenannt
_
, nur für den Fall, dass ich ihn weiter benötige, und es hat funktioniert.quelle
Ich benutze Windows und habe zwei JDK 1.8 und 14 Version etwas ...
Konfrontiert das gleiche Problem und finden Sie nach einigem Debuggen die Lösung.
Und es hat sich gelöst
quelle
Der Fehler tritt auf, wenn der Standardpfad zu Java auf eine andere Version als Java 8 oder JDK 1.8 festgelegt ist. *
In meinem Fall habe ich Java 11 nach der Installation von Java 8 installiert
Sie können testen, indem Sie Folgendes ausführen:
Für meinen Fall kehrte es zurück:
Um dies zu beheben, müssen wir sicherstellen, dass der Java-Pfad stattdessen auf Java 8-Binärdateien verweist
Angenommen, Sie haben bereits Java 8 oder JDK 1.8 installiert. * Installiert:
%JAVA_HOME%\bin
oderC:\Program Files\Java\jdk1.8.0_251\bin
hinzugefügt wird%JAVA_HOME%\bin
PATH überschreiben, der auf JDK 1.8 verweist. *Fügen Sie diese nicht hinzu, wenn Sie sie nicht haben. Suchen Sie andere PATH-Einträge, die möglicherweise überschrieben werden
%JAVA_HOME%\bin
%JAVA_HOME%\bin
%JAVA_HOME%\bin
PATH, der auf Java 8 verweist, hat jetzt Vorrang vor den anderen PATH-Einträgen, die auf JDK 11 verweisenFür meinen Fall kehrte es dann zurück:
Fest!
quelle