AndroidStudioでFlutterのプロジェクトが認識されない
画像の通り、Flutter プロジェクトをルートで開いているにも関わらず、プロジェクト全体が外部パッケージのような認識になってしまっています。
やったこと
- Flutterプロジェクトを新規作成し、AndroidStudioの再起動を実施
- Flutterプロジェクトとして正常に認識されていることを確認
- 原因を突き止めるため、既存の不具合が起きているプロジェクトからファイルやディレクトリを1つずつ新規プロジェクトに置き換え
- AndroidStudioを再起動し、引き続きFlutterとして認識されていることを確認
- 上記②〜④を繰り返し.imlの置き換えタイミングでトップの画像の状態になることを確認
- 新規プロジェクトに存在する.imlファイルの内容を不具合が起きている既存プロジェクト.imlに反映
- 既存プロジェクトが正常にFlutterとして認識されることを確認
Flutterプロジェクトを新規作成し、AndroidStudioの再起動を実施
AndroidStudio上でFlutterを新規作成しました。
Flutterプロジェクトとして正常に認識されていることを確認
再起動後にもFlutterとして認識されていることを確認しました。
確かこの不具合、既存のこのアプリを新規作成した当時から起きていた気がするんですよね🤔
その時は新規作成時には正常に動いていたのですが、エディタ再起動後に当該の不具合が発生していました。
今回はそのようなことにはならなかったのでよかったです。
既存の不具合が起きているプロジェクトから新規プロジェクトにファイルの置き換え
少し気が遠くなる作業でしたが地道に置き換え作業をしました。
この時は.gitなどの各ファイルも含めて全てのファイルを置き換えていきました。
AndroidStudioを再起動し、引き続きFlutterとして認識されていることを確認
どのタイミングで不具合が起きるかわからないので律儀に毎回エディタの再起動から行なっていました。
新規プロジェクトに存在する.imlファイルの内容を不具合が起きている既存プロジェクト.imlに反映
割と早い段階で気づくことができてよかったのですが、.imlファイルを置き換えた時点で不具合が発生しました。
(androidディレクトリを掘り下げないといけないのかと絶望していましたが、ルートファイルに原因があってよかったです😇)
1~/untitled/untitled.iml (新規プロジェクト)
2
3<?xml version="1.0" encoding="UTF-8"?>
4<module type="JAVA_MODULE" version="4">
5 <component name="NewModuleRootManager" inherit-compiler-output="true">
6 <exclude-output />
7 <content url="file://$MODULE_DIR$">
8 <excludeFolder url="file://$MODULE_DIR$/.dart_tool" />
9 <excludeFolder url="file://$MODULE_DIR$/.pub" />
10 <excludeFolder url="file://$MODULE_DIR$/build" />
11 </content>
12 <orderEntry type="sourceFolder" forTests="false" />
13 <orderEntry type="library" name="Flutter Plugins" level="project" />
14 <orderEntry type="library" name="Dart SDK" level="project" />
15 <orderEntry type="library" name="Dart Packages" level="project" />
16 </component>
17</module>
1~/my_app/my_app.iml (既存プロジェクト)
2
3<?xml version="1.0" encoding="UTF-8"?>
4<module version="4">
5 <component name="NewModuleRootManager" inherit-compiler-output="true">
6 <exclude-output />
7 <orderEntry type="sourceFolder" forTests="false" />
8 <orderEntry type="library" name="Dart SDK" level="project" />
9 </component>
10</module>
なんか色々足りてない気がしますね・・・
.imlは触った記憶がないので、プロジェクトが作成された当初からこの状態だったため、すぐに不具合が起きていたのかなと思います。
一時的なバグだったのでしょうか?🤔
既存プロジェクトが正常にFlutterとして認識されることを確認
おわりに
また同じようなことが起きた時に忘れてそうなので備忘録として。。。
特に.imlファイルについては普段特に意識することもないので、今回初めてその役割などを知ることができました。
解決した!!!!!!!!
— まさ𝕏個人開発 (@masa_x_dev) May 4, 2024
どうやらプロジェクトルートにあった.imlファイルが破損していて、AndroidStudioがプロジェクト全体のモジュールを認識できていなかった不具合だったようです@FlutterJapan コミュニティで質問させていただいて解決に至りました…#Flutter #AndroidStudio #JetBrains https://t.co/cJPITYoWgJ
最後まで読んでいただきありがとうございました。