【Flutter】シュミレータのホットリロードが動かない時の覚書

Flutter
 

環境

macOS Big Sur Version 11.5.2
Flutter 2.2.3
Xcode 12.5.1

問題

Flutterでチュートリアルを進めています。iPhoneシュミレータを使用してホットリロードを
使おうとしているのですが、何故か動きません。リスタートは動きます。

試したこと

以下にホットリロードが動くようにするために行った施策をまとめます。

runAppの書き方

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Hello World!')),
      ),
    );
  }
}

runAppの引数にクラス名を取らないといけないみたいです。

その中に直接Widgetを書いているとホットリロードが機能しないみたいです。

VScodeの設定を変更する

上記で動かない、かつVSCodeを使用しているなら以下を試してみてください。

f:id:atusibba1014:20210913221701p:plain

次にHotReloadを検索します。

f:id:atusibba1014:20210913221713p:plain

Flutter Hot Reload On SaveをAlwaysにしてみてください。

f:id:atusibba1014:20210913221633p:plain

Flutter upgradeを試す

古いバージョンだったり、特定のバージョンだと動かないこともあるみたいです。

そこでupgradeをしてみました。

flutter upgrade

キャッシュを消す

Webアプリの常套手段です。(モバイルアプリですが…)

モバイルアプリに通用するかは分かりませんが、前ビルドを引きずっていることもあります。

これでキャッシュを消してやりましょう!

flutter clean

シュミレータの再起動

設定反映のためにもシュミレータを再起動しましょう。

これでもホットリロードができないとき

とりあえずホットリロードは諦めましょう。リスタートでもアプリの更新はいけます。

ときには諦めることも必要です。

私は諦めたら、その次の日にホットリロードが使えるようになっていました笑

おそらく全部の通りの一つが引っかかったのかもです。

終わり

コメント

タイトルとURLをコピーしました