[Flutter]Flutter for Webを試すために、dev channelのSDKを共存させた話

Flutter for Webは、現在、beta版で試すことができます。
Stable環境を変更したくなかったので、beta版を共存させました。

Flutter on the Web
Flutter’s web support combines the power of the web and the flexibility of Flutter to reach more users with the same experience in the browser as on mobile devi...

Warning: As of 1.12, web support is available on the beta channel. If you experience a problem that hasn’t yet been reported, please file an issue and make sure that “web” appears in the title.

dev channelのSDK共存手順

前提

  • Windows10
  • Flutter Stable環境はすでに構築済み(C:\ 直下)(雑

参考

Using two or more different versions of Flutter in single machine
You might have encountered a situation where different versions of Flutter is required to test or build application with different…

dev channelのSDKを任意の場所に格納する

前提にも書いた、Stable環境がある C:\ 直下に置きました。
C:\flutter
C:\flutter_dev ← New

今回、gitを使ってではなく、以下からzipでダウンロードしています。
https://flutter.dev/docs/development/tools/sdk/releases

Aliasesを生成して、batファイルを作る

C:\Aliases\flutterd.bat

中身はこんな感じ

@echo off
C:\flutter_dev\bin\flutter %*

Aliasesのパスを通す

以下でも行けるらしいですが、自分は、システムの詳細設定→詳細設定→環境変数のPATHに追記する手順で行いました。

setx /M path "%PATH%;C:\Aliases\"

flutterd doctorでチェックする

Stableが既にあるので、大抵は問題ないと思います。
それより環境変数が反映されなくて、確認してしまった。けど単に、Windows再起動すればよかっただけだった。

flutterd doctor

Flutter for Webを試して、NoSuchMethodErrorが出た。

手順は、公式通り
https://flutter.dev/docs/get-started/web

> flutterd create myapp
> cd myapp

> flutterd.bat run -d chrome
Downloading Web SDK...                                              3.4s
Launching lib\main.dart on Chrome in debug mode...
Building application for the web...                                46.4s
Attempting to connect to browser instance..                            |ERROR - 2020-02-05 15:43:34.807515
GET /dwds/src/injected/client.js
Error thrown by handler.
NoSuchMethodError: The method 'toFilePath' was called on null.
Receiver: null
Tried calling: toFilePath()
dart:core                                                  Object.noSuchMethod
package:dwds/src/handlers/injected_handler.dart 36:39      createInjectedHandler.<fn>.<fn>
===== asynchronous gap ===========================
package:flutter_tools/src/build_runner/web_fs.dart 240:30  WebFs.start.<fn>.<fn>

(This is taking an unexpectedly long time.)

エラー内容を追う前に、
Android Studioで起動して、
Flutter SDKのパスを設定して(これって勝手に設定されると思っていたけど、設定されていなかった)、
"flutter pub get"して、
ビルドしたら、
大丈夫でした。なんでや。

なお、Flutter SDKのパスを設定場所は以下です。
File > Settings >Languages & Frameworks > Flutter > Flutter SDK path

コメント

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