web-dev-qa-db-ja.com

Gradle:Java '11 .0.2 'からのバージョンを判別できませんでした

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

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

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

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

  2. gradle-wrapper
    gradle-wrapperはすべてのプロジェクトに固有であり、コマンド./gradlew (arguments)を使用して、プロジェクトのディレクトリ内でのみ呼び出すことができます。

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

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

更新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を使用します。これが機能するかどうかを確認します。 v.4.1RC1とv.5.1.1の間の重大な変更により、プロジェクトのフォルダー内のコマンドラインからgradle wrapper --gradle-version=5.1.1 [*]を実行してラッパーを更新できます。

gradle app:installDebugが正しく実行できない場合、Gradleビルドスクリプトをアップグレードする必要があるかもしれません。 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-wrapper自体の、動作中のGradleディストリビューションを使用して、gradle-wrapperを更新できます。ただし、この場合、ラッパーはインストール済みのJavaバージョンと互換性がないため、システム全体のGradle(./gradlewではなくgradle)を使用する必要があります。

95
tryman

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

gradle wrapper --gradle-version 5.1.1

注:gradleではなくgradlewを使用してください

28
lupchiazoem

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

$ export Java_HOME=

9
dr0i

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しかありませんでした。コンパイルします。)

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

Sudo update-alternatives --config Java
4
craq

ラッパーバージョンは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+に更新する必要があります。

4
SuperAndrew

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

gradle wrapper --gradle-version=5.1.1
2
Rocky Inde

同じ問題が発生しました。 gradle 5.0にアップグレードすると、私にとってはうまくいきました。

このリンクには、gradle 5.0のインストール方法に関する詳細な手順が記載されています。 https://linuxize.com/post/how-to-install-gradle-on-ubuntu-18-04/

2
juancho85

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

sdk use Java 8.0.222.j9-adpt

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

1

プロジェクトファイルに行きました。gradle/wrapper/gradlewrapper.properties

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

0

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

0
Derrick Lamptey

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

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

    その後、再構築します。

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

0
KHAN

同様の問題がありました:デフォルトのgradle wrapperはバージョン4.xでしたが、Javaの上位バージョンのサポートがGradle 5に追加されました。

ここで説明されているようにgradlewを更新しました: https://docs.gradle.org/current/userguide/gradle_wrapper.html#sec:upgrading_wrapper

TLTD:

./gradlew wrapper --gradle-version 5.6.2
0
Nestor Milyaev

gradle/wrapper/gradle-wrapper.propertiesを次のバージョンに更新すると、修正されました。

distributionUrl=https\://services.gradle.org/distributions/gradle-5.4.1-all.Zip

私の場合、古い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. コンピューターのセットアップ用に古いが機能するJDK 8をダウンロードします(32ビット/ 64ビット、Windows/Linuxなど)
  5. JDKをインストールします。インストールパスを覚えておいてください。 ( https://docs.Oracle.com/cd/E19182-01/820-7851/inst_cli_jdk_javahome_t/
  6. Windowsを使用している場合は、環境変数を開き、[_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"]_]を右クリックしてJavaパスを変更します
  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
Onat Korucu

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
MgFrobozz