FlutterプロジェクトでのGradle更新
INFO
この記事はFlutterプロジェクトでGradleのバージョン互換性の問題が発生した際の解決方法を解説します。特に「Kotlin Gradle pluginとの互換性がない」というエラーに焦点を当てています。
問題: Gradleバージョンの互換性エラー
FlutterプロジェクトでAPKのビルドに失敗し、次のようなエラーが発生しています:
FAILURE: Build failed with an exception.
* Where:
Build file '...\audioplayers-0.17.4\android\build.gradle' line: 25
* What went wrong:
A problem occurred evaluating root project 'audioplayers'.
> Failed to apply plugin [id 'kotlin-android']
> The current Gradle version 4.10.2 is not compatible with the Kotlin Gradle plugin.
> Please use Gradle 5.3 or newer, or the previous version of the Kotlin plugin.
このエラーは、プロジェクトで使用されているGradleのバージョンが、Kotlin Gradleプラグインと互換性がないことを示しています。
解決方法
方法1: Gradleバージョンの手動更新(推奨)
最新のFlutterプロジェクトでは、以下のGradleバージョンが推奨されています:
android/gradle/wrapper/gradle-wrapper.properties
ファイルを開き、distributionUrl
を更新:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip
android/build.gradle
ファイルを開き、Gradleプラグインのバージョンを更新:
buildscript {
ext.kotlin_version = '1.7.10' // Kotlinバージョンも併せて更新
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:7.4.2'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
WARNING
GradleとAndroid Gradle Pluginのバージョンには互換性があります。必ず公式互換性マトリックスで確認してください。
方法2: コマンドラインからの更新
ターミナルでプロジェクトのandroidディレクトリに移動し、以下のコマンドを実行:
cd android
./gradlew wrapper --gradle-version=7.6.1
このコマンドはgradle-wrapper.properties
ファイルのdistributionUrl
を自動的に更新します。
方法3: Android Studioを使用した更新(GUI操作)
- Flutterプロジェクトの
android
フォルダを右クリック - 「Flutter」→「Open Android module in Android Studio」を選択
- 新しいウィンドウが開いたら、メニューから「File」→「Project Structure」→「Project」を選択
- 「Android Gradle Plugin Version」と「Gradle Version」を最新バージョンに更新
- Gradleの同期が完了するのを待つ
TIP
Android Studioは多くの場合、古いGradleバージョンを検出すると自動的に更新を提案します。この提案に従うことで簡単に更新できます。
方法4: プロジェクトの再作成(最終手段)
カスタマイズが少ないプロジェクトの場合、android
フォルダを削除して再作成する方法もあります:
# プロジェクトルートで実行
flutter create .
DANGER
この方法では、AndroidManifest.xml
や署名設定などのカスタマイズが削除されるため、必ずバックアップを取ってから実行してください。
トラブルシューティング
Javaバージョンの確認
Gradleバージョンには推奨されるJavaバージョンがあります:
android/gradle/wrapper/gradle-wrapper.properties
でGradleバージョンを確認- Gradle公式互換性表で推奨Javaバージョンを確認
- 必要なJavaバージョンをインストール
プラグインの互換性問題
特定のFlutterプラグイン(例中のaudioplayers
など)が古いGradleバージョンに依存している場合:
# pubspec.yamlでプラグインを最新バージョンに更新
dependencies:
audioplayers: ^0.18.3
その後、以下のコマンドを実行:
flutter clean
flutter pub get
推奨設定(2024年現在)
最新のFlutterプロジェクトで推奨される設定:
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip
classpath 'com.android.tools.build:gradle:7.4.2'
ext.kotlin_version = '1.7.10'
compileSdkVersion 33
minSdkVersion 21
targetSdkVersion 33
まとめ
FlutterプロジェクトでのGradle更新は、以下のいずれかの方法で実行できます:
- ファイルを直接編集してバージョンを更新
- コマンドラインから自動更新
- Android StudioのGUIを使用した更新
- プロジェクト全体を再作成
どの方法を選ぶ場合も、必ずプロジェクトのバックアップを取り、GradleとAndroid Gradle Pluginのバージョン互換性を確認してください。定期的なGradleの更新は、セキュリティ修正やパフォーマンス改善の恩恵を受けるために重要です。