環境
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を使用しているなら以下を試してみてください。
次にHotReloadを検索します。
Flutter Hot Reload On SaveをAlwaysにしてみてください。
Flutter upgradeを試す
古いバージョンだったり、特定のバージョンだと動かないこともあるみたいです。
そこでupgradeをしてみました。
flutter upgrade
キャッシュを消す
Webアプリの常套手段です。(モバイルアプリですが…)
モバイルアプリに通用するかは分かりませんが、前ビルドを引きずっていることもあります。
これでキャッシュを消してやりましょう!
flutter clean
シュミレータの再起動
設定反映のためにもシュミレータを再起動しましょう。
これでもホットリロードができないとき
とりあえずホットリロードは諦めましょう。リスタートでもアプリの更新はいけます。
ときには諦めることも必要です。
私は諦めたら、その次の日にホットリロードが使えるようになっていました笑
おそらく全部の通りの一つが引っかかったのかもです。
終わり
コメント