おつかれさまです。すぺきよです。
今日はFlutterでAndroidの実機上で実行するためにビルドしようとしたら発生した、以下の警告に対処した方法です。
Warning: unable to detect project KGP version. Skipping version checking.
This may be because you have applied KGP after the Flutter Gradle Plugin.
Google翻訳で翻訳すると以下のような感じです。
警告: プロジェクトの KGP バージョンを検出できません。バージョンチェックをスキップします。
これは、Flutter Gradle Plugin の後に KGP を適用したことが原因である可能性があります。
この警告が表示されたとしても、アプリは動作するので無視しがちですが、警告である以上、内容を理解せずに無視するのは危険です。
環境
Flutter
3.24.3
Gradle
8.5.0
原因
原因はandroid/app/build.gradleの設定ミスでした。
Flutterのプロジェクト以下のandroid/app/build.gradleファイルの最上部には以下のような記述があると思います。
plugins {
id "com.android.application"
id "dev.flutter.flutter-gradle-plugin"
}
ここの3行目に「id “kotlin-android”」を追加したら警告が消えました。
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
どうやら、上記警告はこの記述が抜けていたことが原因だったようです。
情報源
以前、Flutterのバージョンを3.16.x以降のバージョンにアップグレードする際に、以下のページにある通りGradleに大きな変更を加える必要がありました。
「Deprecated imperative apply of Flutter’s Gradle plugins」
その中で、以下の記載をandroid/app/build.gradleファイルの一番上に追加せよとの指示があります。
plugins {
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
この対応を行った時になぜか「id “kotlin-android”」だけが抜け落ちてしまったようです。
作業当時の手順書にはこの指定はなかったのかと思い、過去のリビジョンも含めて調べましたが、「Deprecated imperative apply of Flutter’s Gradle plugins」の変更履歴を見ても昔からこの指示はあったようで・・・。
なにか調整中に誤って削除してしまったのかもしれません。
解決にいたるまで
Stack overflowのこの記事をみて、android/app/build.gradleの設定内容を見直していたら判明しました。
まとめ
今回は「unable to detect project KGP version.・・・」と警告が発生した際の解決方法について記載しました。
原因は、gradleの設定不足でした。
公式の手順通りに修正していればまず発生しないと思いますが、私のように誤って削除をしてしまう方もいらっしゃるかもしれません。
その際は一度、この設定を見直してみてください。
コメント