【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
Batch

エラー文の意訳

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
Batch

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

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

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

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

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

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

では、よき Flutter ライフを~

Flutter