1. ホーム
  2. java

[解決済み] Gradleです。java のバージョンを '11.0.2' から決定できませんでした。

2022-01-26 23:53:45

質問

次のようなコメントを実行しました。

./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

どうしたらいいかわからない(アップグレード/ダウングレードを試したが、今のところ何もうまくいっていない)。

UPDATEしてください。 を実行したところ ./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/gradle-wrapper.properties には、以下を含みます。 distributionUrl=.../gradle-4.1-rc-1-all.zip :

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

解決方法は?

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

  1. その システム全体のGradle
    このアプリケーションを起動するのは gradle (arguments) .

  2. その グラドルラッパー
    gradle-wrapperはすべてのプロジェクトに固有のもので、プロジェクトのディレクトリ内で、コマンド ./gradlew (arguments) .

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

しかし、この失敗はgradle-wrapperの呼び出し( ./gradlew ). あなたのプロジェクトのgradle wrapperのバージョンを確認していただけますか?そのためには ./gradlew --version プロジェクトのフォルダ内で、gradlew と gradlew.bat ファイルがあるディレクトリに移動してください。

アップデート1:
実行中 ./gradlew --version が失敗した場合、ファイルを開いて手動でラッパーのバージョンを確認することができます。

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

を簡単なテキストエディタで編集してください。中の "distributionUrl" が、ラッパーのバージョンを教えてくれるはずです。

アップデート2: OPの更新された質問の通り、gradle-wrapperのバージョンは 4.1RC1 .
グラードル Gradle 5.0 で JDK 11 をサポートしました。 . したがって、4.1RCはJDK 11での実行をサポートしていないため、これは間違いなく問題です。

明らかな方法は、あなたのプロジェクトのgradle-wrapperをバージョン5.0に更新することです。
しかし、アップデートの前に gradle app:installDebug . これは、システム全体にインストールされた Gradle のバージョン 5.1.1 を使用し、Java 11 での実行をサポートします。もしこれが成功すれば、あなたのビルドスクリプト(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 プロジェクトがガイドを提供しています ( 1 , 2 ) のマイナーリリース間に、壊れるような変更や非推奨の機能を追加し、徐々に最新バージョンに更新できるようにしました。

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

[として lupchiazoem さんの回答で正しく指摘されています。 を使用します。 gradle wrapper --gradle-version=5.1.1 (そして ./gradlew を、当初間違えてそこに投稿してしまったため)。理由は、GradleがJava上で動作しているからです。あなたは、システム全体にインストールされたGradleやgradle-wrapper自体など、動作するGradleの配布物を使用してgradle-wrapperを更新することができます。しかし、この場合、あなたのラッパーはインストールされたJavaのバージョンと互換性がないので、システムワイドなGradle(別名 gradle であり ./gradlew ).