未分類

AndroidStudioでFlutterのプロジェクトが認識されない

MasaoSasaki

画像の通り、Flutter プロジェクトをルートで開いているにも関わらず、プロジェクト全体が外部パッケージのような認識になってしまっています。

やったこと

  1. Flutterプロジェクトを新規作成し、AndroidStudioの再起動を実施
  2. Flutterプロジェクトとして正常に認識されていることを確認
  3. 原因を突き止めるため、既存の不具合が起きているプロジェクトからファイルやディレクトリを1つずつ新規プロジェクトに置き換え
  4. AndroidStudioを再起動し、引き続きFlutterとして認識されていることを確認
  5. 上記②〜④を繰り返し.imlの置き換えタイミングでトップの画像の状態になることを確認
  6. 新規プロジェクトに存在する.imlファイルの内容を不具合が起きている既存プロジェクト.imlに反映
  7. 既存プロジェクトが正常に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ファイルについては普段特に意識することもないので、今回初めてその役割などを知ることができました。

最後まで読んでいただきありがとうございました。

ABOUT ME
まさ
まさ
スマホアプリエンジニア / Webエンジニア
本業で開発エンジニアをしている「まさ」と、申します。そして、個人開発もしています。 このサイトは私自身が開発したスマホアプリをみなさんに知ってもらうために始めました! 開発裏話、今の開発状況や、独り言など雑多に更新していきます。
記事URLをコピーしました