[Flutter] Web アプリとして Chrome が起動しなかったので Web サーバとして動かす

概要

カウンターアプリを Web アプリとして Chrome で動かしたかった。できなかった。

代わりに Flutter を Web サーバとして起動し、Chrome からアクセスするようにした。

公式では簡単にできそうに書いてあったのに!

Choose your first type of app
Configure your system to develop Flutter on macOS.

環境

  • Dart 2.16.1
  • Flutter 2.10.2
  • Chrome 98.0.4758.102

チュートリアル

Flutter プロジェクト作成

いつものカウンターアプリを作成する。

flutter create counter
cd counter

Web サーバとして起動

Web サーバで起動する。

$ flutter run -d web-server

Launching lib/main.dart on Web Server in debug mode...
Waiting for connection from debug service on Web Server...         22.4s
lib/main.dart is being served at http://localhost:59942

http://localhost:59942 へ Chrome でアクセス。

Chrome から Flutter アプリへアクセスできた!

エラー

Failed to connect to Chrome instance.

カウンターアプリを Web で起動したところ、スクショ取る暇もなくアプリが落ちる。

$ flutter run -d chrome

Multiple devices found:
macOS (desktop) • macos • darwin-x64 • macOS 11.4 20F71 darwin-x64
Chrome (web) • chrome • web-javascript • Google Chrome 98.0.4758.102
Please choose one (To quit, press "q/Q"): 2
Waiting for connection from debug service on Chrome...             18.4s
Failed to connect to Chrome instance.

エラー対応

詳細確認

詳細に実行。

flutter run -d chrome --verbose

以下のエラーが発生していた。何のエラーかわからない。。

[  +10 ms] Failed to connect to Chrome instance.
[   +3 ms]
           #0      throwToolExit (package:flutter_tools/src/base/common.dart:10:3)
           #1      ResidentWebRunner.attach (package:flutter_tools/src/isolated/resident_web_runner.dart:551:9)
           <asynchronous suspension>
           #2      asyncGuard.<anonymous closure> (package:flutter_tools/src/base/async_guard.dart:111:24)
           <asynchronous suspension>

ビルドが別途いる?

ビルドが別途いると思った。結論から言うとそんなことはなかったぜ。

Building a web application with Flutter
Instructions for creating a Flutter app for the web.

build する。

flutter build web

その後に起動しようとしたが、状況変わらず。

$ flutter run -d chrome

Launching lib/main.dart on Chrome in debug mode…
Waiting for connection from debug service on Chrome… 16.1s
Failed to connect to Chrome instance.

Web サーバとして動かせばアクセスできた

Web サーバとして動かすコマンド。こんなのあるのか。。

$ flutter run -d web-server

Launching lib/main.dart on Web Server in debug mode...
Waiting for connection from debug service on Web Server...         22.4s
lib/main.dart is being served at http://localhost:59942
The web-server device requires the Dart Debug Chrome extension for debugging. Consider using the Chrome or Edge devices for an improved
development workflow.

🔥  To hot restart changes while running, press "r" or "R".
For a more detailed help message, press "h". To quit, press "q".

指定された URL (http://localhost:59942) にアクセスすると起動できたことを確認。

暫定対応として、これでいく。

Firefox の場合は

未検証。

How to change Flutter DevTools default browser?
Can I change the default browser that is used for Flutter DevTools? Is it compatible with Firefox or other browser? In m...

参考

Building a web application with Flutter
Instructions for creating a Flutter app for the web.
How to change Flutter DevTools default browser?
Can I change the default browser that is used for Flutter DevTools? Is it compatible with Firefox or other browser? In m...
【9つの方法】Chromeの「ERR_CONNECTION_REFUSED」エラーを解決するには
「ERR_CONNECTION_REFUSED」は、さまざまなエラーメッセージと同様で、何らかの問題が発生していることを意味しますが、その原因は表示されません。この記事では、このエラーの解決策をご紹介します。

コメント

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