Flutterのプロジェクトの中に含まれるAndroidのプロジェクトで発生するCannot resolve symbol 'embedding'をなんとかしたい!
概要
今回の記事では、Flutterのプロジェクトの中に含まれるAndroidのプロジェクトで発生するCannot resolve symbol 'embedding'をなんとかする手順を掲載する。
仕様書
環境
- Android Studio Giraffe | 2022.3.1
- Flutter 3.10.5
手順書
Androidネイティブでの処理が必要な場合、Flutterのプロジェクトの中に含まれるAndroidのプロジェクトのソースを編集するんだけども、自動生成されたandroid/app/src/main/java/com.example/MainActivity.javaを開くと、このCannot resolve symbol 'embedding'が発生する。
MainActivity.javaの例。
import io.flutter.embedding.android.FlutterActivity;
public class MainActivity extends FlutterActivity {}
このimport行の部分でio.flutter.embeddingが名前解決できないということで小一時間悩んでた。
実はこれFlutterプロジェクトから直接開くものではなくて、別でAndroid StudioなどでFlutterのプロジェクトの中に含まれるディレクトリandroidをプロジェクトとして開いて編集すればこのCannot resolve symbol 'embedding'は発生しない。
一点注意があって、androidをプロジェクトとして開くとプロジェクトの更新を推奨してくるんだけども、プロジェクトを更新してしまうと親のFlutterのプロジェクトとのバージョンの整合性?が取れなくなってエラーになるのでStart AGP Upfrade Assistantなどでプロジェクトを更新しないようにする。間違って更新してしまった場合は、親のFlutterのプロジェクトの方を開くと修正してくれる。
まとめ(感想文)
Flutter独特の作法がそれなりにあるようなので、一度、体系的にFlutterを学んだほうが良いのかもしれないと思う今日この頃。
