概要
Flutterを試してみる。
環境構築から最初の表示まで。
環境
- Windows 10 Home 21H1 19043.1055
- Flutter 2.2.2
- Engine • revision 91c9fc8fe0
- Tools • Dart 2.13.3
- Android Studio 4.2.1.0
インストール
- chocolateyを使用
cinst -y flutter androidstudio
インストール後、一応再起動。
手順によってはパスを通すように指示がされているが、chocolateyはよしなに設定してくれていた。
FlutterのUpgrade
- flutterの診断
flutter doctor
以下のように言われたので、素直にアップグレード
╔════════════════════════════════════════════════════════════════════════════╗
║ A new version of Flutter is available! ║
flutter upgrade
Android Studio 設定
再度診断。
flutter doctor
Android Studioが認識されていない
[√] Chrome - develop for the web
[!] Android Studio (not installed)
[√] VS Code, 32-bit edition
[√] VS Code, 64-bit edition (version 1.57.1)
[√] Connected device (2 available)
スタートに追加されたAndroid Studioを一度立ち上げてみる。
初期設定を行えと表示されるので、そのまま従う。
ダウンロードに結構、時間がかかった。
HAXMのインストールに失敗。
参考にした記事でもインストールに失敗していたのでそういうものなのだろう。
-
flutter doctor
を試してみる。- 以下のように表記が変わった。
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.2.2, on Microsoft Windows [Version 10.0.19043.1055], locale ja-JP)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
X Android licenses not accepted. To resolve this, run: flutter doctor --android-licenses
[√] Chrome - develop for the web
[!] Android Studio (not installed)
[√] VS Code, 32-bit edition
[√] VS Code, 64-bit edition (version 1.57.1)
[√] Connected device (2 available)
HAXMのインストール
Flutterの開発環境構築手順(Windows)によると、いったんHyper-Vをオフにしないとインストールできないらしい。
bcdedit /enum | Select-String "hypervisor"
上記コマンドの結果、hypervisorlaunchtype Auto
となっていて有効化されていることが分かった。
一旦オフにする。
PS C:\WINDOWS\system32> bcdedit /set hypervisorlaunchtype off
この操作を正しく終了しました。
PS C:\WINDOWS\system32> bcdedit /enum | Select-String "hyper"
hypervisorlaunchtype Off
ここでいったん再起動。
Android Studioを起動し、右下のConfigureからSDK Managerを選択。
あれ、でもInstalledになってる。
念のため、haxmから最新盤をインストールする。
zipをダウンロードして解凍。setup.exeを起動。
- Hyper-Vをもとに戻す。
PS C:\WINDOWS\system32> bcdedit /set hypervisorlaunchtype auto
この操作を正しく終了しました。
再起動。
Flutter Pluginの導入
- config から settingsを選ぶ。
- PluginsからFlutterを選択。
- Dartも入れろと言われるのでインストール
- OKを押して戻ると、再起動しろと。する。
FlutterとAndroid Studioの紐づけ
PS C:\WINDOWS\system32> flutter config --android-studio-dir="C:\Program Files\Android\Android Studio"
Setting "android-studio-dir" value to "C:\Program Files\Android\Android Studio".
You may need to restart any open editors for them to read new settings.
-
flutter doctor
を試す。
PS C:\WINDOWS\system32> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.2.2, on Microsoft Windows [Version 10.0.19043.1055], locale ja-JP)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
X Android license status unknown.
Run `flutter doctor --android-licenses` to accept the SDK licenses.
See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.
[√] Chrome - develop for the web
[√] Android Studio
[√] VS Code, 32-bit edition
[√] VS Code, 64-bit edition (version 1.57.1)
[√] Connected device (2 available)
ひもづけできた。
ライセンスの承認
まずはdoctorの指示通り。
flutter doctor --android-licenses
以下のエラーが出た。
PS C:\WINDOWS\system32> flutter doctor --android-licenses
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
FlutterはじめたらJavaのClassNotFoundExceptionに遭遇した
に従ってAndroid Studioを起動。
- Android Studio configure > SDK Manager > SDK Tools
- Hide Obsolete Packagesのチェックを外す
- Android SDK Command-line Tools(latest)にチェック
- Android SDK Tools(Obsolete)にチェックがついていることを確認。
AcceptしてNext。
- 再度、
flutter doctor --android-licenses
- エラーが出ず、承認にyを押していく。
PS C:\WINDOWS\system32> flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[√] Flutter (Channel stable, 2.2.2, on Microsoft Windows [Version 10.0.19043.1055], locale ja-JP)
[√] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[√] Chrome - develop for the web
[√] Android Studio
[√] VS Code, 32-bit edition
[√] VS Code, 64-bit edition (version 1.57.1)
[√] Connected device (2 available)
• No issues found!
やったー。
動作確認
- 最初のAPPを作って確認してみる。
- Chocolateyでは、flutterは
C:\tools\flutter
にインストールされるので、SDK Pathはそこを指定。
- プロジェクト名などをいれて次へ。
なんか、それっぽいのが出来上がる。
起動してみる。
エミュレータが起動する。
アプリを起動してみる。
たちあがった!
一度、止めて、Runをもう一度試してみる。
今度は、きちんと立ち上がった。初回で調子が悪かったのかもしれない。
参考
公式
Flutter -androidstudio
AndroidStudio
haxm
導入手順
Flutterの開発環境構築手順(Windows)
Flutter アプリ開発入門
Flutter実行環境の構築(Android StudioとXcode)
HAXMのインストール
【Flutter】"[!] Android Studio (not installed)" が出てしまったとき
FlutterはじめたらJavaのClassNotFoundExceptionに遭遇した