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バージョンの互換性ポリシー:
- AGP 7.0~7.3 → Java 11を推奨(Java 8でも動作可能)
- AGP 7.4+ → Java 11が必須
- AGP 8.0+ → Java 17が必須(Android Studioの新規プロジェクトテンプレートではJava 17がデフォルト)
プロジェクトで古いJavaバージョン(8や11)を使用している場合、AGPの最新版と衝突します。
解決方法
方法1: Gradle JDKをIDEで変更(推奨)
Android Studioの設定でGradleが使用するJDKを更新します:
- File → Settings(Mac: Android Studio → Preferences)
- Build, Execution, Deployment → Build Tools → Gradle
- Gradle JDK を変更:
- AGP 7.4.x → JDK 11を選択
- AGP 8.0+ → JDK 17を選択
- 変更を適用しプロジェクトを再同期
方法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などの公式配布版を使用
変更後にまだエラーが消えない場合
- File → Repair IDE でAndroid Studioキャッシュリセット
- ターミナルでプロジェクト削除後キャッシュクリーン:
bash
./gradlew cleanBuildCache
rm -rf ~/.gradle/caches/
予防的なベストプラクティス
- 新規プロジェクト作成時:
- Android Studio最新版では初期設定をJDK 17で開始
- 既存プロジェクト移行時:gradle
# Gradle自体も最新版に更新(8.0+推奨) distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
- チーム開発時:
gradle.properties
にJDKパスを設定して全員の環境統一.sdkmanrc
やjenv
でローカル環境のJDKバージョン管理
JDK選択の判断基準
AGP 7.3以前 | AGP 7.4.x | AGP 8.0+ | |
---|---|---|---|
JDK 8 | ◯ | × | × |
JDK 11 | ◯ | ◯ | △ |
JDK 17 | ◯ | ◯ | ◎必須 |
これらの手順を実施することで、JavaバージョンとAndroid Gradle Pluginの互換性問題は解決されます。環境設定を適切に管理し、AGPのバージョンアップ時に公式リリースノートでJava要件を確認することが再発防止に有効です。