Skip to content

com.android.tools.build:gradle バリアントエラーの解決法

問題の概要

AndroidプロジェクトでGradleを同期すると、次のエラーが発生することがあります:

> No matching variant of com.android.tools.build:gradle:7.4.0 was found.
...
- Incompatible because this component declares an API of a component compatible with Java 11 
and the consumer needed a runtime of a component compatible with Java 8

このエラーの核心は、使用しているJavaのバージョンとAndroid Gradleプラグイン(AGP)の要求バージョンが不一致であることです。

エラーの本質的な原因

  • AGP 7.4.0+ は Java 11 以上を要求します
  • プロジェクトの設定が Java 8(1.8)を使用している
  • このバージョン不一致によりGradleが適切なプラグインのバリアントを見つけられない

根本的な原因

Android Gradle Plugin (AGP) 7.0以降とJavaバージョンの互換性ポリシー:

  1. AGP 7.0~7.3 → Java 11を推奨(Java 8でも動作可能)
  2. AGP 7.4+ → Java 11が必須
  3. AGP 8.0+ → Java 17が必須(Android Studioの新規プロジェクトテンプレートではJava 17がデフォルト)

プロジェクトで古いJavaバージョン(8や11)を使用している場合、AGPの最新版と衝突します。

解決方法

方法1: Gradle JDKをIDEで変更(推奨)

Android Studioの設定でGradleが使用するJDKを更新します:

  1. File → Settings(Mac: Android Studio → Preferences
  2. Build, Execution, Deployment → Build Tools → Gradle
  3. Gradle JDK を変更:
    • AGP 7.4.x → JDK 11を選択
    • AGP 8.0+ → JDK 17を選択
  4. 変更を適用しプロジェクトを再同期

Gradle JDK設定画面

方法2: gradle.propertiesでJDKパス指定(プロジェクト全体)

プロジェクトルートの gradle.properties ファイルにJDKのパスを追加:

properties
# AGP 7.4.xの場合
org.gradle.java.home=/path/to/jdk-11

# AGP 8.0+の場合
org.gradle.java.home=/path/to/jdk-17

パスの確認方法

  • Mac/Linux: /usr/libexec/java_home -v 11(JDK11の場合)
  • Windows: JDKインストールパス(例: C:\\Program Files\\Java\\jdk-17.0.5

方法3: プロジェクトのJava互換性設定を更新

build.gradle でJavaバージョンをAGPに合わせる:

groovy
android {
    compileOptions {
        // AGP 7.4+ には11、AGP 8.0+ には17を設定
        sourceCompatibility JavaVersion.VERSION_11
        targetCompatibility JavaVersion.VERSION_11
    }
    kotlinOptions {
        jvmTarget = '11' // Kotlinの場合
    }
}

方法4: CI/CD環境での設定(GitHub Actions例)

CIパイプラインでJDKバージョンを明示的に指定:

yaml.github/workflows/build.yml
jobs:
  build:
    steps:
      - name: Set up JDK 17
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'temurin'

方法5: Android Gradle Pluginのアップグレード

古いAGPバージョンを使用している場合は更新も有効:

groovy
plugins {
    // 最新バージョンに更新(8.0.0+ならJava 17必須)
    id 'com.android.application' version '8.2.0' apply false
    id 'org.jetbrains.kotlin.android' version '1.9.0' apply false
}

ケース別対応ガイド

Kotlin Multiplatformプロジェクトの場合

注意点

AGPだけでなくKotlin Nativeコンパイラの要件も考慮:

  • KMMプロジェクトではJDK 17が安定動作
  • JDK 11/13ではXcodeビルドが失敗するケースあり
markdown
推奨設定:
1. Gradle JDK: **17**
2. `gradle.properties`: `org.gradle.java.home=/path/to/jdk-17`
3. Xcode互換性確保のためCorretto 17などの公式配布版を使用

変更後にまだエラーが消えない場合

  1. File → Repair IDE でAndroid Studioキャッシュリセット
  2. ターミナルでプロジェクト削除後キャッシュクリーン:
bash
./gradlew cleanBuildCache
rm -rf ~/.gradle/caches/

予防的なベストプラクティス

  1. 新規プロジェクト作成時
    • Android Studio最新版では初期設定をJDK 17で開始
  2. 既存プロジェクト移行時
    gradle
    # Gradle自体も最新版に更新(8.0+推奨)
    distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
  3. チーム開発時
    • gradle.propertiesにJDKパスを設定して全員の環境統一
    • .sdkmanrcjenv でローカル環境のJDKバージョン管理

JDK選択の判断基準

AGP 7.3以前AGP 7.4.xAGP 8.0+
JDK 8××
JDK 11
JDK 17◎必須

これらの手順を実施することで、JavaバージョンとAndroid Gradle Pluginの互換性問題は解決されます。環境設定を適切に管理し、AGPのバージョンアップ時に公式リリースノートでJava要件を確認することが再発防止に有効です。