VS CodeでFlutter を利用している際に、
“The Flutter SDK is installed in a protected folder and may not function correctly”
とメッセージが出力されることがありました。
その問題を色々調べ解決できたので、対応方法をご紹介します。
同様のエラーが発生している方へ、ご参考になれば幸いです。
なぜメッセージが出力されるのか?
Flutter をインストールしているフォルダが保護されており、特殊な権限が必要となるためです。
通常インストールを行うと「C:\Program Files」にFlutter のインストールフォルダが
作成されますが「C:\Program Files」は保護されているため、タイトルのメッセージが出力されます。
対応方法
対応方法は単純で、Flutter のインストールフォルダを保護されていないフォルダに移動します。
手順は以下の通りです。
- フォルダの移動
- 環境変数の変更
- キャッシュ情報の削除(必要に応じて)
1.フォルダの移動
例えば、以下のようにAppsフォルダ(任意のフォルダ名)を作成しそこに移動します。
「C:\Program Files\flutter」→「C:\Apps\flutter」
2.環境変数の変更
以下のように環境変数を設定している場合、修正が必要です。
3.キャッシュ情報の削除(必要に応じて)
上記の対応を行った後に“build_runner“を実行すると、以下のエラーが発生することがあります。
Deprecated. Use dart run instead. Could not find a file named "pubspec.yaml" in
"C:\Program Files\flutter\packages\flutter
キャッシュが残っており、変更前のフォルダを参照している状態です。
ターミナルで以下のコマンド実行するとエラーが解消されます。
flutter packages get
それでもエラーが発生する場合
私は上記を試し解決しましたが、それでもダメな場合があるようです。
問題として、「/flutter/.pub-cache」配下のフォルダに更新されていないキャッシュファイルが
残っているようです。
キャッシュファイルをクリアするため、ターミナルで以下3つのコマンドを実行してください。
flutter clean
flutter pub get
dart pub get
再実行してみる
以上の対応により、タイトルのメッセージは消え、“build_runner“コマンドが
実行できるようになっていることを願います。。。