Skip to content

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バージョンが推奨されています:

  1. android/gradle/wrapper/gradle-wrapper.properties ファイルを開き、distributionUrlを更新:
properties
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip
  1. android/build.gradle ファイルを開き、Gradleプラグインのバージョンを更新:
groovy
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ディレクトリに移動し、以下のコマンドを実行:

bash
cd android
./gradlew wrapper --gradle-version=7.6.1

このコマンドはgradle-wrapper.propertiesファイルのdistributionUrlを自動的に更新します。

方法3: Android Studioを使用した更新(GUI操作)

  1. Flutterプロジェクトのandroidフォルダを右クリック
  2. 「Flutter」→「Open Android module in Android Studio」を選択
  3. 新しいウィンドウが開いたら、メニューから「File」→「Project Structure」→「Project」を選択
  4. 「Android Gradle Plugin Version」と「Gradle Version」を最新バージョンに更新
  5. Gradleの同期が完了するのを待つ

Android StudioでのGradle更新

TIP

Android Studioは多くの場合、古いGradleバージョンを検出すると自動的に更新を提案します。この提案に従うことで簡単に更新できます。

方法4: プロジェクトの再作成(最終手段)

カスタマイズが少ないプロジェクトの場合、androidフォルダを削除して再作成する方法もあります:

bash
# プロジェクトルートで実行
flutter create .

DANGER

この方法では、AndroidManifest.xmlや署名設定などのカスタマイズが削除されるため、必ずバックアップを取ってから実行してください。

トラブルシューティング

Javaバージョンの確認

Gradleバージョンには推奨されるJavaバージョンがあります:

  1. android/gradle/wrapper/gradle-wrapper.propertiesでGradleバージョンを確認
  2. Gradle公式互換性表で推奨Javaバージョンを確認
  3. 必要なJavaバージョンをインストール

プラグインの互換性問題

特定のFlutterプラグイン(例中のaudioplayersなど)が古いGradleバージョンに依存している場合:

yaml
# pubspec.yamlでプラグインを最新バージョンに更新
dependencies:
  audioplayers: ^0.18.3

その後、以下のコマンドを実行:

bash
flutter clean
flutter pub get

推奨設定(2024年現在)

最新のFlutterプロジェクトで推奨される設定:

properties
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.1-all.zip
groovy
classpath 'com.android.tools.build:gradle:7.4.2'
ext.kotlin_version = '1.7.10'
groovy
compileSdkVersion 33
minSdkVersion 21
targetSdkVersion 33

まとめ

FlutterプロジェクトでのGradle更新は、以下のいずれかの方法で実行できます:

  1. ファイルを直接編集してバージョンを更新
  2. コマンドラインから自動更新
  3. Android StudioのGUIを使用した更新
  4. プロジェクト全体を再作成

どの方法を選ぶ場合も、必ずプロジェクトのバックアップを取り、GradleとAndroid Gradle Pluginのバージョン互換性を確認してください。定期的なGradleの更新は、セキュリティ修正やパフォーマンス改善の恩恵を受けるために重要です。