Windows 7 OSでCordova 6.4.0を使用していますが、Androidバージョンをビルドしようとするとこのエラーが発生します。
Java Home変数はJDKパスに正しく設定されていますが、なぜこの問題が発生するのかわかりません。何か提案がありますか?
私は私が問題の解決策を見つけたと思います。同じ問題に直面している人がいる場合に備えて、私は答えを投稿します。
1.8を含む以前のJDKをすべてアンインストールしますJDK 1.8をインストールします
何のために働いたのはjdk 9をアンインストールし、jkd 8.xを再インストールすることでした。
Macの場合は、アンインストールするために端末に行き、以下のステップに従ってください。
cd /Library/Java/JavaVirtualMachines
Sudo rm -rf jdk-9.0.1.jdk
次に、Oracleから.dmgパッケージをダウンロードしてjdk 8.xをインストールします。
古いバージョンのJDKをアンインストールしてもうまくいきます。しかし、それは私が推測する回避策かもしれません。私は同じ問題に直面し、JDKの新バージョンと旧バージョンのJDKパスの両方が'path
'環境変数で言及されていることに気付きました。
'path
の環境変数から古いバージョンのJDKパスを削除することは私にとってはトリックでした。誰かに役立つことを願っています。
あなたは8以上のバージョンを持っているかもしれませんが、CordovaはJDK 1.8のみをサポートします。このリンクを見る Cordovaドキュメント
実際にJavaのバージョン番号をチェックするコードを見ました。次を探します。platform/Android/cordova/libでmodule.exports.check_Java。 220行目。Java10が将来サポートされるというチームによる正規表現とコメントが表示されます。
既存の正規表現は、Java 10などの最新バージョンのJavaに対して実行すると失敗します。これは、Java 8または9が次の形式で保存されているためです。 10。**として、正規表現は1の形式のバージョンを探します。[8-9]。**
// Let's check for at least Java 8, and keep it future proof so we can support Java 10
var match = /javac ((?:1\.)(?:[8-9]\.)(?:\d+))|((?:1\.)(?:[1-9]\d+\.)(?:\d+))/i.exec(output);
私の解決策:
インストーラは各バージョンを特定のフォルダにインストールするため、現在のバージョンのJREまたはJDKをアンインストールする必要はありません。
1-インストールバージョンJava 8 このリンクに従ってください
2 - あなたの環境変数を更新します。
jRE 8とJDK 8がインストールされている場所を指すようにします。
// On my machine
C:\Program Files\Java\jdk1.8.0_171 // Java_HOME
C:\Program Files\Java\jre1.8.0_171 // JRE_HOME
新しい端末セッションを開き、失敗したコマンドを実行してください。今動作するはずです。
うまくいきませんでしたか?
他の理由で失敗した場合、デバッグプロセスが可能です。
私は、Java_HOMEが1.8を指しているのに対し、私のパス環境変数がJava 1.7を指していることを発見したので、パス変数を1.8に編集しても問題ありませんでした。
私の場合、Java_HOMEはC:\ Program Files(x86)\ Java\jdk1.7.0_55を指していました
私は書いたときここでcmdでJavaJava.exeパスと一緒にそれがC:\ Program Files(x86)\ Java\jdk1.7.0_55を出力しました、 Java_HOME変数を環境変数からC:\ Program Files\Java\jdk1.8.0_20に変更しました。 2個のjdkインスタンスとcordovaにはv1.8。*が必要です。
私は@Hozingtonに同意します。これは、CordovaコードのJavaバージョン検出のバグです。私がしたことは、
Java_HOME
をJDK 8のパスに変更し、path
変数も変更します。cordova build
をもう一度実行してください。そしてエラーは消えました!
パスやJava-home
を変更してもうまくいかない場合があります。追加する必要があります
C:\Users\[your user]\AppData\Local\Android\Sdk\platform-tools
C:\Users\[your user]\AppData\Local\Android\Sdk\tools
環境変数への道にも。
MadNeoxによって投稿された答えは正しいです。私は私がjdk 9をインストールした1.8バージョンと同様の問題に直面していました
私は最初にJDK 9を維持し、1.8を削除してみましたそれはエラーが表示されるでしょう要件チェックに失敗しました
それから私はjdk9をアンインストールして1を再インストールしてみました。今回はjavac-versionの実行に失敗したことを示していました
しばらくの間環境変数で遊んだ後、私はついに解決策を得ました
現時点で私のシステムにはjdk 1.8 Cordovaバージョンがあります:7.1.0
- [環境変数を開く]タブ - 新しいユーザー変数を作成するPATH - 次の値Cを指定します。C:¥Program Files¥Java¥jdk1.8.0_151¥bin
これであなたの問題は解決するはずです
答えはすでに与えられていますが、どこで問題が発生しているのかを判断するのに時間がかかりました。他の人の時間を節約することを期待してこの投稿をすることにしました。
MAC:に移動:/ライブラリ/ Java/JavaVirtualMachinesあなたが唯一のjdk1.8.0_201.jdkを持っていることを確認してください他のJDKを削除します
Windowsでうまくミックスするためには、次のことをする必要があります。
C:\Program Files\Java\jdk1.8.0_162
は、値に\bin
を追加しないでください。;
を入れて、この値をシステムパスに追加してください。例えばC:\Program Files\Java\jdk1.8.0_162\bin;
ここでは\bin
が追加されます。注:環境変数はトリッキーです。別の変数を開く前に、;で閉じる必要があります。そのため、値を追加する前に1つ、値を閉じるために値の後に1つ配置します。
jDKのバージョンが多い場合は実行できます
export Java_HOME="/usr/local/env/Java/jdk1.8.0_131.jdk/Contents/Home/"
cordovaをビルドする前に、特定のバージョンのjdkを使用します。
Jdk8とjdk9の両方がインストールされている場合は、バージョンを確認する必要があります。
パスとJava_HOMEが指している場所。
あなたが投稿したログでは、私はJava_HOMEがJDK9を導いていることがわかりました。
globelのJava_HOME env varをJDK 8をターゲットにするように変更するか、cordova CLIのみを使用する前にpowershellでJava_HOMEを変更することができます。
$env:Java_HOME="C:\Program Files\Java\jdk1.8.0_151"
**cordova build Android**
同じJDKバージョン(この場合は1.8)がPATH
環境変数とJava_HOME
からアクセスできることを確認してください。例:Java_HOME=C:\Program Files\Java\jdk1.8.0_152
の場合、PATH
変数は、上のパスと、JDK/JREが既にPATH
変数に記述されている場合の他のパスの前(存在する場合)に重要です。他のバージョンのJavaを使用しているアプリケーションが他にない場合は、他のバージョンをアンインストールすることを選択できます。
念のため、古いJDKフォルダの名前を_
に変更しましたが、うまくいきました。
C:\Program Files (x86)\Java\_jdk1.7.0_40
C:\Program Files (x86)\Java\_jre7
すべてのJavaインストールをアンインストールし、jdk-8u181-windows-x64を再インストールしました。この問題を避けるために私にはうまくいきました。
私はjdk1.8.0_201と同じ問題に直面しました。私はJava_HOME = C:\ Program Files\Java\jdk1.8.0_201を作成し、 "C:\ Program Files\Java\jdk1.8.0_201\bin"を追加したときに解決されましたパス変数
複数のJavaバージョンがインストールされており、それらを維持する必要がある場合は、次のことを確認する必要があります。
Windows 10に(Open)JDK 8および11がインストールされていますが、同じ問題がありました。私にとっては、以下がうまくいった:
ubuntuユーザーのために私は答えを見ていましたが解決策を集めるのに時間がかかりました。今後の参考のために、コマンドを使用してデフォルトのSudoインストールをアンインストールしてください。
Sudo rm -r /usr/lib/jvm/jdk10.0.2
あなたが私のインストールしたバージョン10.0.2であなたのバージョンで上記のjdkを交換してください!次にOracleサイトにアクセスして、ここから からtar.gzをダウンロードしてください 。次に、ターミナルを使用して以下のコードを使用してhome
フォルダにファイルを抽出します。
tar zxvf jdk-8u201-linux-x64.tar.gz
あなたのJdkを交換してください、しかしそれが上のものと同じcordovaによって必要とされるのでjdk1.8を使用してください。次に、以下のコードを使って環境変数を設定します。
gedit ~/.bashrc
テキストエディタが表示されたら、このエクスポートを追加します。コンピュータを再起動した後に機能します
export Java_HOME=/home/abrsh/jdk1.8.0_201
ここで上記のコードabrshは私のユーザー名であり、jdk1.8.0_201は私がtar zxvf
を使って先に抽出したフォルダーです。
Cordovaの公式文書によると、JDK 1.8のみがサポートされています(2018年4月)。またはcordova内のバージョン検出スクリプトに問題がある可能性があります。
コントロールパネルに移動し、古いJDKをアンインストールし、 https://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html
問題はソートされます。
Android SDKはJava 9をサポートしていないようです。JDK 1.8に戻りたくない場合は、8にダウングレードしてください。 JDK 8は私のために働きますが、Java_HOME環境変数をあなたのJDKインストールの場所に正しく設定することを忘れないでください。
問題が解決しない場合は、
それを確認します :