Gradle:「11.0.2」からJavaバージョンを特定できませんでした


133

私は次のコメントを実行しました:

./gradlew app:installDebug

ログでのみ満たされる:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '11.0.2'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

私のgradleのバージョンは5.1.1です:

------------------------------------------------------------
Gradle 5.1.1
------------------------------------------------------------

Build time:   2019-01-10 23:05:02 UTC
Revision:     3c9abb645fb83932c44e8610642393ad62116807

Kotlin DSL:   1.1.1
Kotlin:       1.3.11
Groovy:       2.5.4
Ant:          Apache Ant(TM) version 1.9.13 compiled on July 10 2018
JVM:          11.0.2 (Oracle Corporation 11.0.2+9-LTS)
OS:           Mac OS X 10.13.6 x86_64

どうすればよいかわかりません(アップグレード/ダウングレードを試しましたが、これまでのところ何も機能していません)。

更新:私が実行したとき./gradlew --version、私は以下を得ました:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '11.0.2'.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

* Get more help at https://help.gradle.org

gradle-wrapper.propertiesが含む:

distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.1-rc-1-all.zip

5
このバグレポートによると、gradle wrapperが古い可能性はありますか?
冷凍エンドウ豆のロディ

私のgradleのバージョンは5.1.1ですが、これで問題ないと思います。
lesley2958

2
この特定のプロジェクトに関連付けられているGradleバージョンを開始するコマンド./gradlewを実行します。プロジェクトのバージョンがインストールしたバージョン(5.1.1)と同じである保証はありません
tryman

1
そのバージョン情報の結果ですgradle --version./gradlew --version?Gradleベースのプロジェクトでは、多くの場合、ラッパーを使用して、異なる開発者が同じGradleバージョンを使用してプロジェクトをビルドしやすくします。これにより、ビルドがより安定します。
Slaw

それはのバージョンですgradle --version
lesley2958

回答:


123

システムには2つの異なるGradleアプリケーションがあります。

  1. システム全体のGradle
    このアプリケーションは、によって呼び出されますgradle (arguments)

  2. Gradleのラッパー
    のGradleラッパーはすべてのプロジェクトに固有のものであり、唯一のコマンドを使用して、プロジェクトのディレクトリ内で呼び出すことができます./gradlew (arguments)

システム全体のGradleバージョンは5.1.1です(OPがコメントで説明されているように、コマンドを実行するとgradle --versionバージョン5.1.1が返されます)。

ただし、失敗はgradle-wrapper(./gradlew)の呼び出しの結果です。プロジェクトのGradleラッパーバージョンを確認できますか?これを行うに./gradlew --versionは、gradlewおよびgradlew.batファイルがあるディレクトリのプロジェクトのフォルダー内で実行します。

更新1:
実行に./gradlew --version失敗したため、ファイルを開いてラッパーのバージョンを手動で確認できます。

(プロジェクトのルートフォルダー)/gradle/wrapper/gradle-wrapper.properties

シンプルなテキストエディタを使用します。内部の「distributionUrl」は、ラッパーのバージョンを教えてくれます。

更新2: OPの更新された質問に従って、gradle-wrapperのバージョンは4.1RC1です。
Gradle は、Gradle 5.0でJDK 11のサポートを追加しました。したがって、4.1RCはJDK 11をサポートしていないため、これは間違いなく問題です。

明白な方法は、プロジェクトのgradle-wrapperをバージョン5.0に更新することです。ただし、更新する前に、を実行してみてくださいgradle app:installDebug。これは、システム全体にインストールされた、バージョン5.1.1でJava 11をサポートするGradleを使用します。これが機能するかどうかを確認します。それがない場合は、お使いのbuildscript(ファイルbuild.gradleは)v.4.1RC1とv.5.1.1の間の任意の破断変化に影響されないと、あなたは、あなたのプロジェクトのフォルダ内のコマンドラインから実行することによって、あなたのラッパーを更新することができますgradle wrapper --gradle-version=5.1.1[ *]。

場合はgradle app:installDebug正常に実行に失敗し、その後、多分あなたはあなたのGradle buildscriptをアップグレードする必要があります。v.4.1RC1から5.1.1に更新するため、Gradleのプロジェクトは、ガイド(提供12を使用すると、最新バージョンに徐々に更新できるようにしていること、マイナーリリース間の変更と廃止予定機能を破壊して)。

あるいは、何らかの理由でGradleビルドスクリプトをアップグレードできない場合、またはアップグレードしたくない場合は、JavaバージョンをGradle 4.1RC1がサポートするバージョンにいつでもダウングレードすることを選択できます。

[*] @lupchiazoemの別の回答で正しく指摘されているように、使用しますgradle wrapper --gradle-version=5.1.1./gradlew元々間違ってそこに投稿したのではありません)。その理由は、GradleがJava上で実行されるためです。Gradleラッパーは、システム全体にインストールされているGradleまたはGradleラッパー自体のいずれかで、動作している任意のGradleディストリビューションを使用して更新できます。あなたは、システム全体のGradleを(別名使用する必要がないので、しかし、このケースでは、あなたのラッパーは、お使いのインストールされているJavaのバージョンと互換性がありませんgradleし、ありません./gradlew)。


1
@trymanありがとう!私にとって、あなたを助けたのはあなたのアップデート2でした。一般的な経験則として、私は将来のgradleバージョンをチェックすると思います。
Avidプログラマ、

エラーの原因が正確に述べられていない。異なるバージョン?
ジョアンピメンテルフェレイラ

何?Update 2はかなり明確だと思いました。彼女はJDK11でバージョン4.1RC1のGradleラッパーを実行しようとしていました。Gradleはバージョン5.0でJDK11のサポートを追加しました。@JoãoPimentelFerreiraの混乱は何ですか?それが原因でした。残りは、プロジェクトのラッパーをJDK11をサポートする新しいバージョンに更新する方法の解決策です。
tryman

1
今度は混乱する番です。実際に、プロジェクトフォルダー内のGradleラッパーとシステム全体のGradleインストールの両方が存在する場合は、上記のステップバイステップのソリューションが機能するはずです。プロジェクトフォルダー内でupdateコマンドを実行して、ラッパーをアップグレードしてみましたgradle wrapper --gradle-version=5.0か?5.0を目的のバージョンに置き換えます。最新版は5.4だと思います
tryman

1
ただし、注意が必要です。ラッパーのバージョン3.3とバージョン5.xの間では、いくつかの重大な変更が発生する可能性があります。そのため、私の回答では、まずシステム全体のGradleを使用してプロジェクトをビルドし、プロジェクトのラッパーを更新する前に、アップグレードするバージョン5.xですべてがスムーズに動作することを確認するように指示しています。急いでいる場合(トーンの緊急性を感じます)、常にシステムグラドルを直接使用するか、古いJDKにダウングレードして、後でラッパーのアップグレードに追いつくことができます。
tryman

34

distributionUrlまだ使用してラッパー、アップグレード、古いバージョンを指しています。

gradle wrapper --gradle-version 5.1.1

注:使用gradleしていませんgradlew


うまくいきます。このコマンドは、gradleラッパーのバージョンを更新します。ありがとう。
ダニエル

または、gradle/wrapper/gradle-wrapper.properties distributionUrl=https\://services.gradle.org/distributions/gradle-5.1.1-all.zip バージョン6のバージョンをJDK12に置き換えるだけでは機能しないようです。5.1.1は正常に動作します。ありがとうございます。
Liam Kernighan

11

私の場合、JAVA_HOME変数はに設定されました/usr/lib/jvm/jdk-11.0.2/。次のように変数を設定解除するだけで十分です。

$ export JAVA_HOME=


1
これも私の問題を解決しました。jenvが最初に私の問題を引き起こした可能性があります。
jokarl

私にとってGRADLE_HOMEは(5.4.1に)更新されましたが、gradleバージョン(まだ古いバージョンを指している4.3)ではありません。奇妙なものsource ~/.bash_profile
prayagupd '10


6

tl; dr:実行してJavaをダウングレードupdate-alternatives


私のシステムのgradleバージョンは4.4.1であり、gradle wrapperバージョンは4.0でした。他のいくつかの回答で与えられたコマンドを実行した後:

gradle wrapper --gradle-version 4.4.1

私はまだ同じエラーがありました:

FAILURE: Build failed with an exception.

* What went wrong:
Could not determine java version from '11.0.4'.

Java 11はGradle 4.8までサポートされていなかったことがわかりました。私のソフトウェアリポジトリには4.4.1しかありませんでした。(また、新しいgradleバージョンにアップグレードすると、コンパイルしようとしたパッケージと互換性がない可能性があります。)

答えは、javaをダウングレードすることでした。私のシステムには実際にはすでにjava8がインストールされており、このコマンドを実行して指示に従うことで、javaのバージョンを簡単に切り替えることができました。

sudo update-alternatives --config java

5

ラッパーバージョンは11+をサポートしていないため、新しいバージョンのInteliJを永久にだます簡単なトリックを作成できます。

  press3x Shift -> type "Switch Boot JDK" -> and change for java 8. 

https://blog.jetbrains.com/idea/2015/05/intellij-idea-14-1-4-eap-141-1192-is-available/

または、Java 11以降で作業する場合は、ラッパーのバージョンを4.8以降に更新するだけです。


1
ただの注意点です。AndroidStudioでこのソリューションを試さないでください。私はそれを壊します。
Mauricio Sartori

3

長い答えを短くgradlewするには、システムgradleツールを使用してをアップグレードします。システムのgradleバージョンがであっても、以下のアップグレードは機能することに注意してください< 5

gradle wrapper --gradle-version=5.1.1

3

ここでも同じ問題がありました。私の場合、古いバージョンのJDKを使用する必要があり、sdkmanagerを使用してJDKのバージョンを管理しているため、仮想マシンのバージョンを1.8に変更しました。

sdk use java 8.0.222.j9-adpt

その後、アプリは期待どおりにここで実行されます。




1

[ファイル]-> [プロジェクト構造]をクリックしてこれを解決し、JDKの場所を埋め込みJDKを使用するように変更しました(推奨)


0

私は同様の問題に遭遇しました。私はこれらを削除しました:

  • .ideaフォルダーからのライブラリとキャッシュ(YourApp> .idea> ..)および
  • ビルドフォルダーの内容。

    その後、再構築します。

*プロジェクトを最初にバックアップすることを忘れないでください*


0

Ubuntu 18.04.3 LTSで同じ問題が発生しました。私の場合、aptはgradleバージョン4.4.1をインストールしました。インストール済みのJavaバージョンは11.0.4でした

私が得たビルドメッセージは

Could not determine java version from '11.0.4'.

当時、ほとんどのオンラインドキュメントはGradleバージョン5.6を参照していたため、次のようにしました。

sudo add-apt-repository ppa:cwchien/gradle
sudo apt update
sudo apt upgrade gradle

次に、プロジェクトの初期化を繰り返しました(デフォルトの "gradle init"を使用)。その後、「./ gradlew build」は正しく機能しました。

私は後で、「java --version」からの出力の形式の変更に関するコメントを読みました。これにより、gradleが破損しました。これは、gradleの新しいバージョンで修正されました。


0

私の場合、古いUnity 3Dプロジェクト用のAPKをビルドして取得しようとしていました(Androidフォンでゲームをプレイできるようにするため)。私は最新のAndroid Studioバージョンと、Android StudioのSDK Managerを介してダウンロードできるすべてのSDKパッケージを使用していました。SDKパッケージは次の場所にあります

C:/Users/Onat/AppData/Local/Android/Sdk 

また、JDK(Java Development Kit)バージョン "jdk-12.0.2"を除いて、私が受け取ったエラーメッセージは同じでした。JDKは

C:\Program Files\Java\jdk-12.0.2

Windowsの環境変数はJAVA_HOME:C:\ Program Files \ Java \ jdk-12.0.2でした

3時間の調査の結果、UnityはJDK 10をサポートしていないことがわかりましたhttps://forum.unity.com/threads/gradle-build-failed-error-could-not-determine-java-version-from-10-0-1.532169/。私の提案は:

  1. 不要なJDKがすでにインストールされている場合は、アンインストールします。https://www.java.com/tr/download/help/uninstall_java.xml
  2. に行く http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
  3. まだログインしていない場合は、Oracleアカウントにログイン/オープンします。
  4. お使いのコンピューター設定(32ビット/ 64ビット、Windows / Linuxなど)用に、古く機能するJDK 8をダウンロードします。
  5. JDKをインストールします。インストールパスを覚えておいてください。(https://docs.oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/
  6. Windowsを使用している場合は、環境変数を開き、Myを右クリックしてJavaパスを変更します。 Computer/This PC>Properties>Advanced System Settings>Environment Variables>New>Variable Name: JAVA_HOME>Variable Value: [YOUR JDK Path, Mine was "C:\Program Files\Java\jdk1.8.0_221"]
  7. Unity 3Dでを押しEdit > Preferences > External Tools and fill in the JDK path (Mine was "C:\Program Files\Java\jdk1.8.0_221")ます。
  8. また、同じポップアップで、SDKパスを編集します。(から入手してくださいAndroid Studio > SDK Manager > Android SDK > Android SDK Location。)
  9. 必要に応じて、コンピュータを再起動して変更を有効にします。

0

プロジェクトファイルを取得.. gradle / wrapper / gradlewrapper.properties

そこでdistributionurl、最新のバージョンの値に変更できます。(docs.gradle.orgにあります)


0

でインストールしようとしたときに、Dockerセットアップで同じ問題に直面Gradle-2.4していましたJDL 11.0.7新しいバージョンをインストールする必要がありますこの問題を解決するには、新しいます。

これが実際のDockerfileです

FROM openjdk:11.0.7-jdk
RUN apt-get update && apt-get install -y unzip
WORKDIR /gradle
RUN curl -L https://services.gradle.org/distributions/gradle-6.5.1-bin.zip -o gradle-6.5.1-bin.zip
RUN unzip gradle-6.5.1-bin.zip
ENV GRADLE_HOME=/gradle/gradle-6.5.1
ENV PATH=$PATH:$GRADLE_HOME/bin
RUN gradle --version
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.