【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つの対処法
順番に対処法を紹介していきます。
読み書き権限の付与
フォルダーに読み書き権限がないとのことなので、エラー文に従い「Flutter の SDK フォルダー」と「プロジェクトフォルダー」のプロパティを変更してみましょう。
- Flutter SDKフォルダーを右クリックし、プロパティを選択
- 読み取り専用のチェックを外し、OKを選択 ※上図
- サブフォルダーにも適用して続行
- プロジェクトフォルダー側にも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 の場合は、タスクトレイ(通知領域)から一時的に無効にすることができます。
アンチウィルスソフトを無効にした状態で、改めて実施してみましょう。
flutter create app1
これで問題なく実行できれば、原因もハッキリして再発防止にもなりますね。
要は、アンチウィルスソフトによる『マルウェアの誤検知』が原因です。
なぜ誤検知が発生してしまうのかというと、プログラムファイルがパソコン内でごっそり移動したり、急にビルドを開始し始めたら、悪意のある動作だと疑われてもおかしくないですからね。
もし、アンチウィルスソフトを導入しなければならない環境で、誤検知の邪魔をされたくなければ、ESET を導入しとけば良いと思います。
ESET は有料ですが、今回みたいな誤検知をあまりしない(体感)ので、邪魔されたくない人には良いと思います。
では、よき Flutter ライフを~