Zakku-Spot.com

気になる情報のリサーチブログ - Reserch blog of information you care about -

[基礎知識]Flutter開発環境準備

1月 2, 2024
0 0
Read Time:13 Minute, 12 Second

 仮想マシン(ホスト:Windows11/Hyper-V経由/ゲスト:Windows10)上に、Flutter開発環境を作成した時の備忘録です。

1.Java

 現在最新JavaはVer21(LTS)ですが、訳(別途)あってVer17にダウングレードする必要があった為、掲載しています。

 ダウンロード元:https://www.oracle.com/java/technologies/javase/jdk17-archive-downloads.html

※Javaのどのバージョンまで対応できているのかは、各周辺アプリケーション毎に異なるため、開発中、不慮のJavaバージョン変更が発生することがあります。

2.Git for Windows

 ver2.4以降が必要です。

 手順:https://zakku-spot.com/2023/07/30/%e3%83%ac%e3%83%93%e3%83%a5%e3%83%bcgit-for-windows-%e5%b0%8e%e5%85%a5%e8%a8%98%e9%8c%b2/

3.Android Studio

(1)基本インストール

 バージョン2022.3(Giraffe)以降

 手順:https://zakku-spot.com/2024/01/01/bk-android-studio-install-001/

(2)コンポーネント適用

※最初この確認・インストールを飛ばしてしまった!その為、以下のCommand-line Toolsをインストールしていなかったので、以降で面倒な手順が増えてしまった・・・。

  • Android SDK Platform, API 33.0.0
  • Android SDK Command-line Tools  ← ※結果これだけ忘れていた!!
  • Android SDK Build-Tools
  • Android SDK Platform-Tools
  • Android Emulator

 手順:Android Studio起動後、次の設定画面で、上記項目にチェックを入れて「Apply」をクリックする。

※インストール時、インストールログに、以下のメッセージ(赤字部分)が表示された場合、「Finish」をクリックして、このまま手順を進めます。

上記エラー(赤字部分の内容):

添付された画像の内容によると、Android Emulatorのhypervisor driverのインストールに失敗しているようです。このエラーメッセージは、Android Studioのセットアップ中にAndroid Emulatorを実行するための低レベルのドライバ(hypervisor driver)のインストールがうまくいかなかったことを示しています。

この問題を解決するためには、以下の手順に従ってください:

  1. エラーメッセージに書かれているURL(https://github.com/google/android-emulator-hypervisor-driver)にアクセスして、hypervisor driverのインストール手順を確認してください。
  2. 通常、このドライバはIntelのHAXM (Hardware Accelerated Execution Manager) またはAMDのWindows Hypervisor Platform (WHPX) を使用してインストールされます。お使いのPCがIntelのCPUを使用している場合はHAXMが、AMDのCPUを使用している場合はWHPXが適切な選択になります。
  3. HAXMまたはWHPXが正常にインストールされているか、またはBIOS/UEFI設定で仮想化技術(VT-xまたはAMD-V)が有効になっているかを確認してください。
  4. 開発環境がWindowsの場合、Windowsのセキュリティ機能(Core Isolation)が有効になっていると、HAXMのインストールが妨げられることがあります。セキュリティ機能を一時的に無効にしてからインストールを試みることができます。
  5. それでも問題が解決しない場合は、Android StudioのSDK Managerを開き、”SDK Tools” タブから “Android Emulator Hypervisor Driver for AMD Processors” (あるいはIntelの場合は対応するオプション)を見つけて、直接インストールを試みてください。

このエラーは、しばしばセキュリティソフトウェアや不適切な環境設定によって引き起こされるため、これらの要素も確認してみてください。上記の手順に従っても問題が解決しない場合は、Android StudioのサポートフォーラムやStack Overflowなどの開発者コミュニティに具体的なエラーメッセージを共有して、さらなるアドバイスを求めることも有効です。

4.Visual Studio ( Community )

※当時、このインストールを忘れていたので、以降の【※4】エラーが発生し、そこで気づいてインストールすることになりました。

 Visual Studio( https://visualstudio.microsoft.com/downloads/. )のうち、コミュニティ版をダウンロード、インストールしました。コンテンツとしては、「C++によるデスクトップ開発」ワークロードを選択、インストールしました。

 ※「C++によるデスクトップ開発」ワークロードには、FlutterでのWindowsデスクトップアプリ開発に必要なC++コンパイラやツールが含まれています。このワークロードを選択し、インストールを進めてください。これで、Flutterを使用したWindowsアプリの開発が可能になります。

※その他の設定は別途掲載

5.IDE(VS Code)

 Flutter開発をVisual Studio Code(VSCode)で行うための環境設定手順は以下の通りです。

5.1 VS Code インストール

別記事「[ガイドツアー記録] Visual Studio Code 1.78.2 (x64)」参照

5.2 各種コンポーネント

(1)拡張機能

・WSL(WSLv0.81.8以上)

・Flutter(Flutterv3.80.0以上)

(2)Flutter SDK

 VS Codeの場合、Flutter SDKを適用する手段が(以下の)2つある。
・バンドル版 Flutter SDK
 ダウンロード元:https://storage.googleapis.com/flutter_infra_release/releases/stable/windows/flutter_windows_3.16.5-stable.zip
・Flutter拡張機能
 手順:https://docs.flutter.dev/get-started/install/windows/mobile?tab=vscode
 ※Flutterチームではこちらからの手順を推奨している。
 ※以降は、この手順の記録です。

(2-1)Flutter拡張機能

 まずVS Code上で以下の拡張機能をインストールする。
 「Flutter v3.80.0 -Flutter support and debugger for Visual Studio Code」

(2-2)Android SDK Command-line Tools (latest)

①Android Studio : [SDK Manager]->[Android SDK]->[SDK Tools]->□Android SDK Command-line Tools (latest)にチェックを入れてインストールする。

↓ 「Apply」をクリック

↓ 「OK」をクリック

②cmdline-tools の存在するパスをシステム環境変数に登録する。

例:”C:\Users\lemo\AppData\Local\Android\Sdk/cmdline-tools/latest” の下に cmdline-tools がある。

③Androidライセンス承認
> flutter doctor –android-licenses

(2-3)Flutter SDK

 以下の手順で、Android SDKをダウンロード・インストールする。

① Ctrl + Shift + P と押下すると、コマンド入力欄が開きフォーカスが当たるので、そこで「flutter」と入力し、プルダウン表示される項目から、「Flutter: New Project」を選択する。

② 「Download SDK」を選択する。

③ C:\ドライブを選択し、そこに「dev」フォルダを作成し、その「dev」フォルダを指定し、「Clone Flutter」をクリックする。

 数分かかります。

④ 「Add SDK to PATH」を選択する。

⑤ 以下のメッセージが表示されたら「OK」する。

⑥ 以下の状態のまま、触らずに放置して、以下の手順に移る。

⑦ OUTCONSOLEの内容の確認

参考:
 この際、VSCodeの出力コンソールに表示されていた内容は以下の通り。
 いくつか後処理が必要な様です。(着色の部分(【※1】~【※5】))

例1:

Checking Dart SDK version... 
Downloading Dart SDK from Flutter engine ... 
Expanding downloaded archive with PowerShell...
Building flutter tool... 
Running pub upgrade... 
Resolving dependencies...
Got dependencies.
Downloading Material fonts...                                      378ms
Downloading Gradle Wrapper...                                       40ms
Downloading package sky_engine...                                  130ms
Downloading flutter_patched_sdk tools...                           373ms
Downloading flutter_patched_sdk_product tools...                   373ms
Downloading windows-x64 tools...                                    4.8s
Downloading windows-x64/font-subset tools...                       170ms
[!] Flutter (Channel stable, 3.16.5, on Microsoft Windows [Version 10.0.22631.3007], locale ja-JP)
    • Flutter version 3.16.5 on channel stable at C:\dev\flutter
    ! The flutter binary is not on your path. Consider adding C:\dev\flutter\bin to your path. ←【※1】
    ! The dart binary is not on your path. Consider adding C:\dev\flutter\bin to your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 78666c8dc5 (3 weeks ago), 2023-12-19 16:14:14 -0800
    • Engine revision 3f3e560236
    • Dart version 3.2.3
    • DevTools version 2.28.4
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[√] Windows Version (Installed version of Windows is version 10 or higher)

[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\lemo\AppData\Local\Android\sdk
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`  ←【※2】
      See https://developer.android.com/studio/command-line for more details.
    X Android license status unknown.
      Run `flutter doctor --android-licenses` to accept the SDK licenses. ←【※3】
      See https://flutter.dev/docs/get-started/install/windows#android-setup for more details.

[√] Chrome - develop for the web
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[√] Visual Studio - develop Windows apps (Visual Studio Community 2022 17.8.4)
    • Visual Studio at C:\Program Files\Microsoft Visual Studio\2022\Community
    • Visual Studio Community 2022 version 17.8.34408.163
    • Windows 10 SDK version 10.0.22621.0

[√] Android Studio (version 2023.1)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.7+0-b2043.56-10550314)

[√] VS Code (version 1.85.1)
    • VS Code at C:\Users\lemo\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.80.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.22631.3007]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 120.0.6099.200
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 120.0.2210.121

[√] Network resources
    • All expected network resources are available.

! Doctor found issues in 2 categories.
exit code 0

例2:

Checking Dart SDK version... 
Downloading Dart SDK from Flutter engine ... 
Expanding downloaded archive with PowerShell...
Building flutter tool... 
Running pub upgrade... 
Resolving dependencies...
Got dependencies.
Downloading Material fonts...                                      543ms
Downloading Gradle Wrapper...                                       20ms
Downloading package sky_engine...                                  238ms
Downloading flutter_patched_sdk tools...                           485ms
Downloading flutter_patched_sdk_product tools...                   490ms
Downloading windows-x64 tools...                                    4.9s
Downloading windows-x64/font-subset tools...                       287ms
[!] Flutter (Channel stable, 3.16.5, on Microsoft Windows [Version 10.0.19045.3570], locale ja-JP)
    • Flutter version 3.16.5 on channel stable at C:\dev\flutter
【※1】
! The flutter binary is not on your path. Consider adding C:\dev\flutter\bin to your path.
! The dart binary is not on your path. Consider adding C:\dev\flutter\bin to your path.
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 78666c8dc5 (13 days ago), 2023-12-19 16:14:14 -0800
    • Engine revision 3f3e560236
    • Dart version 3.2.3
    • DevTools version 2.28.4
    • If those were intentional, you can disregard the above warnings; however it is recommended to use "git" directly to perform update checks and upgrades.

[√] Windows Version (Installed version of Windows is version 10 or higher)

[!] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at C:\Users\ysyam\AppData\Local\Android\Sdk
【※2】
    X cmdline-tools component is missing
      Run `path/to/sdkmanager --install "cmdline-tools;latest"`
      See https://developer.android.com/studio/command-line for more details.
【※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
    • Chrome at C:\Program Files\Google\Chrome\Application\chrome.exe

[X] Visual Studio - develop Windows apps
【※4】
    X Visual Studio not installed; this is necessary to develop Windows apps.
      Download at https://visualstudio.microsoft.com/downloads/.
      Please install the "Desktop development with C++" workload, including all of its default components

[√] Android Studio (version 2022.3)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin can be installed from:
       https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
       https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.6+0-b2043.56-10027231)

[√] VS Code (version 1.85.1)
    • VS Code at C:\Users\ysyam\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.80.0

[√] Connected device (3 available)
    • Windows (desktop) • windows • windows-x64    • Microsoft Windows [Version 10.0.19045.3570]
    • Chrome (web)      • chrome  • web-javascript • Google Chrome 120.0.6099.130
    • Edge (web)        • edge    • web-javascript • Microsoft Edge 120.0.2210.91

[√] Network resources
    • All expected network resources are available.
【※5】
! Doctor found issues in 3 categories.
exit code 0

確認・対応:

【※1】→ (PATHへの設定はユーザー変数には登録されていたのですが)システム変数にも登録してみました。

【※2】→ Android開発のためのコマンドラインツールがインストールされていないことを意味しています。これを修正するには、指示されたコマンド
 path/to/sdkmanager --install "cmdline-tools;latest"
を実行する必要があります。path/to/sdkmanager は、実際のAndroid SDKのパスに置き換えて実行すれば良さそうです。(例:C:\Users\ysyam\AppData\Local\Android\Sdk\tools\bin\sdkmanager --install "cmdline-tools;latest"

 これにより、最新のコマンドラインツールがインストールされ、flutter doctor コマンドで挙げられた問題が解消される可能性があります。また、Androidライセンスに関する問題を解決するためには、flutter doctor --android-licenses を実行して、SDKライセンスに同意する必要があります。これらのステップを踏むことで、開発環境の設定が完了し、Flutterを使ったアプリ開発が可能になります。

 しかし、そう思って、上記のsdkmanagerがSdkフォルダ配下に見つかりませんでした。
 sdkmanager は、Android SDKの一部としてインストールされるコマンドラインツールですが、このツールは cmdline-tools ディレクトリに含まれています。cmdline-tools コンポーネントが見つからない場合、以下の手順で、Android Studioを開いてSDK Managerを使用し、コマンドラインツールをインストールする必要があります。

手順)
1.Android Studioを開きます。
2.メインメニューから「Tools」>「SDK Manager」を選択します。
3.SDK Managerの「SDK Tools」タブを開きます。
4.「Android SDK Command-line Tools」を探して選択し、インストールを確認します。

 > sdkmanager –install cmdline-tools;latest

5.「OK」をクリックしてインストールを開始します。

 これらのステップを完了すると、cmdline-tools ディレクトリが作成され、sdkmanager ツールが利用可能になるはずです。その後、改めて flutter doctor コマンドを実行して環境を確認してください。

 上記の結果、ここでは、
 C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin
 の直下に、sdkmanager.bat が追加されていました。


・・・

以下、苦労した際のログです。

VSCodeのターミナル)

PS C:\Users\ysyam> C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\sdkmanager –install “cmdline-tools:latest”
エラー: メイン・クラスcom.android.sdklib.tool.sdkmanager.SdkManagerCliのロード中にLinkageErrorが発生しました
java.lang.UnsupportedClassVersionError: com/android/sdklib/tool/sdkmanager/SdkManagerCli has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up tos file version 61.0), this version of the Java Runtime only recognizes class file versions up to 55.0
PS C:\Users\ysyam> C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\sdkmanager –install “cmdline-tools:latest”

ERROR: JAVA_HOME is set to an invalid directory: C:\Program Files (x86)\jdk-11.0.20

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

CMDプロンプト)

C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin>C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\sdkmanager –install “scmdline-tools;latestt”
Warning: Failed to find package ‘scmdline-tools;latestt’
[=== ] 10% Computing updates…
C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin>C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\sdkmanager –install “scmdline-tools;latest”
Warning: Failed to find package ‘scmdline-tools;latest’
[=== ] 10% Computing updates…
C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin>C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\sdkmanager –install “scmdline-tools:latest”
Warning: Failed to find package ‘scmdline-tools:latest’
[=== ] 10% Computing updates…
C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin>sdkmanager –list > list.txt
C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin>C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin\sdkmanager –install cmdline-tools;latest
[=======================================] 100% Computing updates…

C:\Users\ysyam\AppData\Local\Android\Sdk\cmdline-tools\latest\bin>

sdkmanager –list の結果(抜粋))

cmdline-tools;latest

【※3】→ flutter doctor –android-licenses と実行することで、5つのライセンスについて確認を求めてきましたので、5回yを選択して完了できました。

【※4】→ Visual Studio( https://visualstudio.microsoft.com/downloads/. )のうち、コミュニティ版をダウンロード、インストールしました。コンテンツとしては、「C++によるデスクトップ開発」ワークロードを選択、インストールしました。

 ※「C++によるデスクトップ開発」ワークロードには、FlutterでのWindowsデスクトップアプリ開発に必要なC++コンパイラやツールが含まれています。このワークロードを選択し、インストールを進めてください。これで、Flutterを使用したWindowsアプリの開発が可能になります。

⑧ flutter doctor (検査)

 エラーが無ければOKです。もしエラーがあった場合は要対応となります。

6.ターゲットAndroidデバイス構成

 ここでは、Flutterアプリの開発における、ターゲットとなるAndroidデバイスを設定していきます。これには、Androidデバイスを開発者モードに設定し、USBデバッグを有効にすることが含まれます。これにより、開発中のアプリをデバイス上で直接実行し、デバッグすることが可能になります。

 以下、「Virtual Device」と「Physical Device」の構成を実施します。
この両者は、アプリのテストやデバッグのために使用するAndroidデバイスの種類を指します。

6.1 Virtual Device構成

URL:https://docs.flutter.dev/get-started/install/windows/mobile?tab=virtual

 Virtual Device構成により、ミュレータを使用して、物理的なデバイスがなくても、コンピュータ上でAndroid環境をシミュレートできます。エミュレータを使用すると、異なるデバイスサイズやOSバージョンでアプリをテストすることが容易になります。

手順:

6.1ー1 VMアクセラレーション設定

URL:「Android Emulator のハードウェア アクセラレーションを設定する」(https://developer.android.com/studio/run/emulator-acceleration?hl=ja#accel-vm

サイト要約:

エミュレータは、純粋なソフトウェアとして使用するより、CPU、GPU、モデムなどのマシンのハードウェアと連携した方が最適に動作します。マシンのハードウェアを使用してパフォーマンスを向上させる機能をハードウェア アクセラレーションと呼びます。

エミュレータはハードウェア アクセラレーションを使用して、主に次の 2 つの方法でエクスペリエンスを改善できます。

  • 画面レンダリングを改善するグラフィック アクセラレーション
  • 実行速度を向上させる仮想マシン(VM)アクセラレーション

ほとんどのマシンでは、ハードウェア アクセラレーションがデフォルトで有効になっています。このページでは、マシンで有効になっていない場合にグラフィック アクセラレーションと仮想マシン(VM)アクセラレーションを設定し、エミュレータのパフォーマンスを向上させる方法について説明します。

(1)開発環境要件

① SDK Tools: 推奨バージョン 26.1.1 以降
https://developer.android.com/studio/releases/cmdline-tools?hl=ja

サイト要約:

グラフィック アクセラレーションでは、コンピュータのハードウェア(通常は GPU)を使用して、画面のレンダリングを高速化します。Android デバイスは、OpenGL for Embedded Systems(OpenGL ES または GLES)を使用して、画面上に 2D グラフィックと 3D グラフィックの両方をレンダリングします。

AVD Manager で Android Virtual Device(AVD)を作成するとき、エミュレータでハードウェアとソフトウェアのどちらを使用して AVD の GPU をエミュレートするかを指定できます。通常はより高速であるハードウェア アクセラレーションをおすすめします。ただし、コンピュータでエミュレータと互換性のないグラフィック ドライバを使用している場合は、ソフトウェア アクセラレーションを使用する必要があります。

グラフィック アクセラレーションにハードウェアとソフトウェアのいずれを使用するかは、デフォルトで、エミュレータがコンピュータの設定に基づいて決定します。GPU ハードウェアとドライバに互換性がある場合、エミュレータは GPU を使用します。互換性がない場合、エミュレータはソフトウェア アクセラレーション(つまり、コンピュータの CPU)を使用して GPU 処理をシミュレートします。

コマンドラインからエミュレータを起動する場合、その仮想デバイス インスタンスに対する AVD のグラフィック アクセラレーション設定をオーバーライドできます。

要件

グラフィック アクセラレーションを使用するには、開発環境に次のものが必要です。

  • SDK Tools: 最新リリースが推奨されます(バージョン 17 以降)
  • SDK Platform: 最新リリースが推奨されます(Android 4.0.3 リビジョン 3 以降)

※ハイパバイザーをOFFにするコマンド:
> bcdedit /set hypervisorlaunchtype off

再起動)

> sdkmanager “cmdline-tools;latest” –channel=3

※上記URLでは、” が ’ で記載されているが(上記コマンドの様に)、” で囲まないと途中でエラーになる。またcmdline-tools;latestの部分も、怪しい場合は、sdkmanager –listコマンドで確認が必要。

② AVD(Android仮想デバイス): 開発環境に適切なAndroidエミュレータ用のシステムイメージ準備

URL: (要件説明・確認)https://developer.android.com/studio/run/emulator-acceleration?hl=ja#accel-vm

開発環境のCPUアーキテクチャ確認 > wmic cpu get Architecture

(判別は、0 = x86、5 = ARM、6 = Intel Itanium-based、9 = x64 (AMD or Intel) となります。)

※今回は上記により「x64 (AMD)」でしたので、
AVDとして、「Android 2.3.3(API レベル 10)以降用の x86 または x86_64 システム イメージ」を選択することが必要となります。

URL: (AVD追加手順)https://developer.android.com/studio/run/managing-avds?hl=ja#about

※Android Studioには初期AVDとして、上記アーキテクチャ対応のPixelイメージが作成済みでしたので、今回はこれを利用することにしました。
※上記URL途中でGradleに関する説明がありますが、ここではスルーします。
※ちなみにGradleはJavaのバージョン21(LTS)には対応していません。

(2)仮想化拡張機能要件

URL: https://developer.android.com/studio/run/emulator-acceleration?hl=ja#extensions
以下のいずれかで確認可能。

※ちなみに上記URLにはVMアクセラレーションの制限として「VirtualBox、VMware、Docker でホストされている VM など、異なる VM 内で VM アクセラレーションを使用するエミュレータを実行することはできません。VM アクセラレーションを使用するエミュレータは、ホスト コンピュータで直接実行する必要があります。」と書いてあります。
 今回の開発環境(ホストOS(Windows11)上のHyper-V仮想環境(ゲストOS(Windows10))において、動作させる予定のAndroid Studioの場合は制限から外れる可能性がありますが、実際にHWアクセラレーションが有効に機能するかどうかはHyper-Vとの互換性等も関係があるらしく、後日追記します。

確認方法1> systeminfo ※ここで仮想化拡張機能要件有効化の如何を確認できます。

確認方法2> タスクマネージャで[パフォーマンス]→[CPU]で、「仮想化:有効」となっていればOK。

確認方法3> もし既にDocker for Windows等、仮想拡張機能有効化必須のソフトが稼働していればOK。
(参考URL(1章参照): https://zakku-spot.com/2023/08/18/review-docker-mysql-container-001/

(3)ハイパーバイザー選択

URL:https://developer.android.com/studio/run/emulator-acceleration?hl=ja#hypervisors
VMアクセラレーションには(上記(2)で有効にした(はず))仮想化拡張機能を使用するツールであるハイパーバイザー(Windows上のVMアクセラレーションでは次の3つを使用可能)が必要です。

・ Android Emulator ハイパーバイザ ドライバ(AEHD) 
  (↑Hyper-V を Android Emulator と同時に実行する必要がない場合)
・ Windows Hypervisor Platform(WHPX) ← ※今回これを使用
  (↑Hyper-V は Android Emulator と同時に実行する必要がある場合)
・ Intel Hardware Accelerated Execution Manager(HAX) ←開発中、非推奨

現状ハイパーバイザーがインストールされているかの確認方法:
> ***\AppData\Local\Android\Sdk\emulator\emulator -accel-check

※実行したコマンドの結果から、エミュレータがハイパーバイザのチェックを行ったところ、Hyper-Vが有効になっており、Androidエミュレータの使用前に無効化する必要があると指摘されています。しかし、同時にWindows Hypervisor Platform (WHPX) がインストールされており、使用可能であるとも示されています。これは、WHPXが有効であれば、Hyper-Vを無効にせずともAndroidエミュレータが利用できる可能性があることを意味しています。

新規インストール手順> https://developer.android.com/studio/run/emulator-acceleration?hl=ja#vm-windows-whpx

※ちなみに、現在(上記)のWindows Hypervisor Platform (WHPX) を無効にして、Android Emulator ハイパーバイザ ドライバ (AEHD) に切り替える手順は次の通りです。

ハイパーバイザー切替(WHPX無効化、AEHD有効化)手順:

[1]WHPX無効化:
① 管理者としてコマンドプロンプトを開きます。
② 次のコマンドを実行してHyper-Vを無効にします:bcdedit /set hypervisorlaunchtype off
③ PCを再起動します。
  これによりWHPXは無効になり、その後でAEHDをインストールして有効にすることができます。

[2]AEHD有効化:

URL: https://developer.android.com/studio/run/emulator-acceleration?hl=ja#vm-windows-aehd
以下の手順で、SDK Manager からインストールします。
④ optionalfeatures.exe 実行後、[Hyper-V]をオフにする。

URL: https://developer.android.com/studio/run/emulator-acceleration?hl=ja#disable-hyper-v

Android Studio起動後、SDK Manager起動。
⑤ [SDK Tools]タブ選択後「Android Emulator hypervisor driver」にチェックしOKします。

 Android Emulator ハイパーバイザ ドライバは GitHub (https://github.com/google/android-emulator-hypervisor-driver/releases)からダウンロードしてインストールすることもできます。 ドライバ パッケージを解凍した後、管理者権限によりコマンドラインで silent_install.bat を実行します。
※ここでダウンロードしたドライバは、sdkフォルダにでも保存しておくとやり直し易いです。

⑥ インストール後、以下のコマンドでドライバの動作を確認します。

※上記(STATE: 4 RUNNING)からAEHDが正常に動作していることが分かります。

変更後には、再度エミュレータの動作を確認する。

※ドライバをAEHDに変更しても以下のワーニングが表示されました。
 内容は「エミュレータが「ネストされた仮想化」(ホストされた仮想マシン内で別の仮想マシンを動かすこと)を使用して動作しているよ」という警告です。
 ネストされた仮想化は推奨されず、性能が低下する可能性があること、あるいはまったく動作しない可能性があることを示しています。
※このネストされた仮想化の環境作るのも苦労したんですけどねぇ…しかたないのかぁ;

※こんなのも出ました。いろいろ言ってきますね。

6.1-2 Androiエミュレータ動作確認

(1)手順

URL: https://docs.flutter.dev/get-started/install/windows/mobile?tab=virtual

① Android Studio起動

② Device Manager表示

③ Device選択

④ イメージ選択

⑤ AVD設定

⑥ エミュレータ起動

⑦ エミュレータ動作確認

 一応、エミュレーターは動作したものの、やはり動作は遅かったです。
 以下の遷移に10分位かかりました。

 また途中、グラフィックボードのドライバーについてのワーニングメッセージが表示されました。
 原因は、この開発環境が、Hyper-V上のゲストOS(Windows10)であるため、純正・最新のグラフィックボードドライバを認識できない(適用できない)のが原因です。
 ※つまりホストOS上で(マニュアルにもある様に)直接動作させれば快適に動く(はず) 

 あと試せるところといえば、上記「6-1-1(3)ハイパーバイザー選択」でのハイパーバイザーを別のもの(Android Studio特化版)に置き換えてみる、位でしょうか…。
(こちらは別途試してみます)

(2)結果と所感

 結論としては、Flutter開発するだけなら、今迄の開発経験の範囲でですが、今回の仮想マシン環境で十分だと思いました。
 またAndroid Studio(Java、Kotlinなどで)スマフォ開発でも、エミュレータを使用しない場合なら、やはり、Flutterと同様です。

 しかし、エミュレータを利用して開発する環境としては…
 ・仮想マシンで行うのは苦しい、むりなのか。
  故に、ホストマシン側で行うしかないのか。
 ・格段に高性能な仮想マシンを使うのか。
 ・(通常開発は仮想環境で行い)エミュレートはホスト側環境で行うか。
という感想に至りました。AWSやazureでのスマフォ開発でのエミュレートについて興味がわきました。

6.2 Physical Device構成

URL:https://docs.flutter.dev/get-started/install/windows/mobile?tab=physical

 Physical Device構成では、実際のAndroidスマートフォンやタブレットを使用できるようにします。物理的なデバイスを使用すると、実際のハードウェア上でアプリのパフォーマンスや動作をテストすることができます。

 こちらの記事も別途掲載予定です。

7.Flutter開発向けのWebサーバー

 Flutter開発では、Webサーバーとしては、Firebaseの利用が今の所、一番有力だと思います。
 package:firebase_storage/firebase_storage.dart のインポートで、簡単に動作確認することができます。

 こちらについても別記事掲載予定です。

Happy
Happy
0 %
Sad
Sad
0 %
Excited
Excited
0 %
Sleepy
Sleepy
0 %
Angry
Angry
0 %
Surprise
Surprise
0 %

Average Rating

5 Star
0%
4 Star
0%
3 Star
0%
2 Star
0%
1 Star
0%

コメントを残す