【Flutter】The flutter tool cannot access the file or directory.

Flutter

【Flutter】The flutter tool cannot access the file or directory.

Windows で Flutter の開発環境を構築したときに「ファイル作成の権限がない」といったエラーに遭遇したので、その時の状況と解決法を3つ紹介します。

今回は、Flutter プロジェクトの作成時に遭遇したエラーですが、もしエラー内容が同じであれば、別ケースでも対応方法が同じ可能性があります。このエラーで悩んでいたら参考にしてみてください。

エラー内容

Flutter failed to copy

C:\Users\user_name\Documents\flutter_test\flutter\packages\flutter_tools\templates\app\android.tmpl\app\src\main\res\mipmap-hdpi\ic_launcher.png to

C:\Users\user_name\Documents\flutter_test\app1\android\app\src\main\res\mipmap-hdpi\ic_launcher.

png due to unknown error. The flutter tool cannot access the file or directory.

Please ensure that the SDK and/or project is installed in a location that has read/write permissions for the current user.

下記を実行したときのエラー内容です。

flutter create app1

エラー文の意訳

The flutter tool cannot access the file or directory.

(Flutter のツールがファイルまたはフォルダーにアクセスできなかったよ。)

Please ensure that the SDK and/or project is installed in a location that has read/write permissions for the current user.

(Flutter の SDK や該当のプロジェクトが、現ユーザーで読み書き権限のある場所にインストールされているか確認してね。)

エラー文こそ英語ではありますが、とにかくファイル(フォルダー)にアクセスができなかったという内容ですね。

3つの対処法

  1. 読み書き権限の付与
  2. Program Filesにインストールしていないか
  3. アンチウィルスソフトの無効化

順番に対処法を紹介していきます。

読み書き権限の付与

フォルダーに読み書き権限がないとのことなので、エラー文に従い「Flutter の SDK フォルダー」と「プロジェクトフォルダー」のプロパティを変更してみましょう。

Flutterフォルダーのプロパティ画面
  1. Flutter SDKフォルダーを右クリックし、プロパティを選択
  2. 読み取り専用のチェックを外し、OKを選択 ※上図
  3. サブフォルダーにも適用して続行
  4. プロジェクトフォルダー側にも1の手順から施行

操作はこれだけです。ファイル数が多いため、権限の変更処理もそれなりに時間がかかります。

ただ、そもそも Windows ユーザーは読み書き権限を頻繁にコントロールする機会は少ないので、この方法では解決できないかもしれません。

Flutter 導入後、何らかの理由で読み書き権限を制限していた場合は、これを機に権限を付与してサクッと解決してやってください。

Program Filesにインストールしていないか

Flutter SDK を「Program Files フォルダー」にインストール(コピー)してセットアップしている場合、同様のエラーが発生する可能性があります。

素直に「ドキュメントフォルダー」といった「ユーザーフォルダー配下」に Flutter SDK を配置しましょう。

Do not install Flutter in a directory like C:\Program Files\ that requires elevated privileges.

(昇格された権限を必要とする、Program Files といったフォルダーに Flutter をインストールしないでね。)

docs.flutter.dev

公式で普通に警告を出しているので、やっちゃった人は直しましょう。

SDK の場所を移動する場合、PATH の変更もお忘れなく!

アンチウィルスソフトの無効化

上記2つでも解決できない場合、アンチウィルスソフトが原因になっている可能性があります。

例えば Avast の場合は、タスクトレイ(通知領域)から一時的に無効にすることができます。

タスクトレイのAvastを右クリック

アンチウィルスソフトを無効にした状態で、改めて実施してみましょう。

flutter create app1

これで問題なく実行できれば、原因もハッキリして再発防止にもなりますね。

なぜアンチウィルスが原因なのか?

要は、アンチウィルスソフトによる『マルウェアの誤検知』が原因です。

なぜ誤検知が発生してしまうのかというと、プログラムファイルがパソコン内でごっそり移動したり、急にビルドを開始し始めたら、悪意のある動作だと疑われてもおかしくないですからね。

もし、アンチウィルスソフトを導入しなければならない環境で、誤検知の邪魔をされたくなければ、ESET を導入しとけば良いと思います。

ESET は有料ですが、今回みたいな誤検知をあまりしない(体感)ので、邪魔されたくない人には良いと思います。

では、よき Flutter ライフを~

Flutter