0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Android StudioにおけるGradle JDK設定の理解とJava Toolchainsの活用

Posted at

gradle.propertiesorg.gradle.java.homeは、Gradleデーモン(Gradle自身の実行環境)が使う JVM を指定します。プロジェクトのコンパイルに使うJDKとは別です。ビルドを速くするため、Gradleはデーモンとして動きます。この設定は、デーモンがどのJavaを使うかをGradleに伝えます。

Android Studioでビルドする際、IDEの設定が優先されます。具体的には、File > Settings > Build, Execution, Deployment > Build Tools > Gradleの「Gradle JDK」が使われます。Android Studioは独自のGradleデーモンを管理し、そのJDKはIDEの設定で決まります。そのため、gradle.propertiesの設定は直接適用されないように見えます。コマンドライン引数での指定が最も優先されます。JAVA_HOME環境変数は、設定がない場合の候補です。

Gradle 6.7以降では、Java Toolchainsを使うのがおすすめです。これは、プロジェクトが必要なJDKバージョンをビルドスクリプトで指定できる機能です。Gradleは必要なJDKを自動で探し、なければダウンロードしてくれます。

設定方法(build.gradle):

java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17) // 使いたいJDKのバージョン
    }
}

この設定で、Gradleは自動でJDKを見つけ、ダウンロードし、コンパイルやテストなどのタスクに適用します。

Gradleが自身の実行環境とプロジェクトのコンパイル環境のJDKを分けているのは、ビルドの安定性と柔軟性を保つためです。Gradleデーモンが特定のJDKで動くことで、システム全体のJDKに左右されず、Gradleの動作が安定します。また、プロジェクトごとに異なるJDKが必要な場合でも対応できます。

よくある問題と解決策:

  • Android StudioのGradle JDK設定: File > Settings > Build, Execution, Deployment > Build Tools > Gradleで「Gradle JDK」が正しいか確認します。
  • Gradleデーモンのキャッシュ: ターミナルで./gradlew --stopを実行し、Gradleデーモンを停止してキャッシュをクリアします。
  • Java Toolchainsの活用: build.gradleでJava Toolchainsを設定し、環境に依存しないJDK管理をしましょう。
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?