2022年2月初旬に、FlutterのSDK安定版が2.10.0にアップグレードされましたが、
アップグレード前に作成したプロジェクトを、Flutterのアップグレード後にビルドしようとすると(AndroidでもiOSでも)、それまではちゃんと動いていたにも関わらず、
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ Warning ────────────────────────────────────────────────────────────────────────────── Your Flutter application is created using an older version of the Android embedding. It is being deprecated in favor of Android embedding v2. Follow the steps at https://flutter.dev/go/android-project-migration to migrate your project. You may also pass the --ignore-deprecation flag to ignore this check and continue with the deprecated v1 embedding. However, the v1 Android embedding will be removed in future versions of Flutter. ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ The detected reason was: /Users/telulullc/FlutterProjects/000AppReleased/meiso/android/app/src/main/AndroidManifest.xml uses `android:name="io.flutter.app.FutterApplication"` ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ This app is using a deprecated version of the Android embedding.
というビルドエラーが出て失敗する場合があります。
(注)正確には「エラー」ではなく「ウォーニング(警告)」ですが、ビルドに失敗してしまいますのであえて「エラー」と称しています。
このエラーをたどっていくと、修正点を明記してくれていますので、
リンク先の要領で、Androidのマニフェストファイル(AndroidManifest.xml)の「application」タグにある「android:name」属性を
<application android:name="io.flutter.app.FlutterApplication" > <!-- code omitted --> </application>
から
<application android:name="${applicationName}" > <!-- code omitted --> </application>
に修正すると解消します。
これは、Flutter1.12で発生したAndroid領域での変更をそれ以前のFlutterのバージョンで作成したプロジェクトに適応するための統合処理の一貫なのですが、今回の事象はFlutter1.12以降で作成したプロジェクトでも発生します。
その理由は、Flutter1.12以降で作成したプロジェクトは、基本的に上記変更があらかじめ反映されたプロジェクトが作成されるのですが、今回のエラーの箇所のみ手当てされていなかったことによるもので、Flutter2.10以前ではスルーしていたものを、今般正式にエラー(メッセージとしてはウォーニングですが)扱いにしたものと思われます。
(注)Flutter2.10以降で作成した新規プロジェクトでは、今般の事象は発生しません。
(注)Flutter2.10及びAndroid Studio「Bumblebee」へのアップデート時の注意点のまとめは以下をご参照下さい。
(詳しくは、以下の動画で解説していますので、よろしければご覧下さい)