M1 MacへのAndroid Studioのセットアップ

flutter doctorで指摘されたAndroid Studioのセットアップ方法のまとめです。

Android Studioのインストール

公式サイトからダウンロード

Android Studioは公式サイトからダウンロードできます。本記事執筆時点のバージョンは4.1.3です。

Download Android Studio and SDK tools  |  Android Developers

ダウンロードしたdmgをマウントすると、アプリ本体とApplicationsフォルダへのシンボリックリンクが入っているので、アプリ本体をApplicationsフォルダへのシンボリックリンクにドラッグ&ドロップでインストール完了です。

執筆時点で公式サイトから普通にダウンロードしたバージョンはIntel版でした。Apple Siliconネイティブ版ではありませんでした。

JetBrains Toolbox Appでダウンロード

Android StudioはJetBrainsが開発・販売しているIntelliJ IDEAを元にしているIDEです。そのような経緯もあってか、JetBrains Toolbox AppもAndroid Studioに対応しています。

JetBrains Toolbox AppはJetBrainsが開発しているIntelliJ IDEA系のIDEのインストールやアップデートを管理するアプリです。私はAppCodeを使っていることもあり、JetBrains Toolbox Appを使ってIntelliJ IDEA系のIDEを管理しています。

Toolbox Appp経由でもAndoroid Studioをダウンロード及びインストールできます。

Toolbox Appは以下のページからダウンロードできます。

JetBrains Toolbox App:ツールを簡単に管理

Toolbox AppにもIntel版とApple Siliconネイティブ版があります。Apple Sliconネイティブ版をダウンロードするには、ダウンロードボタンのディスクロージャーボタンをクリックして、「.dmg(macOS Apple Slicon)」を選択します。

ダウンロードしたdmgをマウントすると、アプリ本体とApplicationsフォルダへのシンボリックリンクが入っています。アプリ本体をApplicationsフォルダへのシンボリックリンクにドラッグ&ドロップでインストール完了です。

Toolbox Appを起動すると、メニューバーにToolbox Appアイコンが追加されるので、クリックして開きます。JetBrainsのサブスクリプションを契約しているユーザーの場合は、設定画面にアカウントの設定があります。アカウントを設定すると、サブスクリプションで契約中のアプリもToolbox Appから管理できるようになります。

Toolbox Appは各アプリについて複数バージョンを保持できるようになっています。複数バージョンは不要という場合には、設定画面で「Keep only the latest version」をオンにしておきます。

Android Studioをインストールするには、Toolbox Appの「Tools」タブの「Available」の「Anrdroid Studio」の隣にある「Install」ボタンをクリックします。なお、Apple Siliconネイティブ版がリリースされると、「Available for Apple Silicon」の方にも表示されるようになり、どちらのアーキテクチャのビルドをインストールするか選択できるようになります。両方共存もできます。

Android Studioをインストールする

Setup Wizard

初回起動時はSetup Wizardが表示されます。指示に従ってセットアップを進めると、SDKなど必要なコンポートネントのダウンロードとインストールが行われます。少し時間がかかりますが、そのまま終わるまで待ちます。

Android Studioのセットアップウィザード

完了すると完了画面が表示されますが、ログに次のようなエラーが表示されます。

Unable to install Intel® HAXM
Your CPU does not support VT-x.
Unfortunately, your computer does not support hardware accelerated virtualization.
Here are some of your options:
 1) Use a physical device for testing
 2) Develop on a Windows/OSX computer with an Intel processor that supports VT-x and NX
 3) Develop on a Linux computer that supports VT-x or SVM
 4) Use an Android Virtual Device based on an ARM system image
   (This is 10x slower than hardware accelerated virtualization)

Intel HAXMがインストールできなかったため、VT-xにCPUが対応していないというエラーです。「Finish」ボタンをクリックしてウィザードを完了します。

コンポーネントのダウンロード

2021年8月3日 追加

バージョン 2020.3.1.22で試すとIntel HAXMがインストールできず、VT-xにCPUが対応していないというエラーは表示されなくなりました。また、次のようにログが出力され、x86版の仮想デバイスではなく、arm64版の仮想デバイスが作成されたということが確認できます。

Creating Android virtual device
Android virtual device Pixel_3a_API_31_arm64-v8a was successfully created

プラグインのインストール

Flutter用のプラグインをインストールします。次のように操作します。

(1) Welcome画面の「Configure」から「Plugins」を選択します。

(2) 「Marketplace」タブで「Flutter」を検索します。

(3) 「Flutter」プラグインが見つかるのでインストールします。画面の指示に従って行くと必須プラグインのインストール確認も表示されるのでインストールします。「Dart」プラグインもインストールされます。

Flutterプラグインのインストール

Androidエミュレータについて

Androidエミュレータはログに出ていたとおり、まだ、エラーになってしまいます。プレビュー版などをインストールすれば、起動できるようになるようですが、不具合がまだそれなりにあるようです。私は実機でデバッグすれば良いので、エミュレータのセットアップは一旦見送ることにしました。

google/android-emulator-m1-preview

Developing with Flutter on Apple Silicon · flutter/flutter Wiki

2021年8月4日 追加

バージョン 2020.3.1.22 で試すとデフォルトで作成された arm64版の仮想マシンを起動できたのですが、Android Studioからアプリをシミュレータ内で実行できませんでした。

Flutterとの組み合わせ確認

本記事の元々はFlutterのセットアップです。Android StudioとSDKのセットアップが完了したので、Flutterからも認識されるか確認します。

$ flutter doctor
objc[4501]: Class AMSupportURLConnectionDelegate is implemented in both ?? (0x20d08c188) and ?? (0x117d702b8). One of the two will be used. Which one is undefined.
objc[4501]: Class AMSupportURLSession is implemented in both ?? (0x20d08c1d8) and ?? (0x117d70308). One of the two will be used. Which one is undefined.
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.4, on macOS 11.2.3 20D91 darwin-arm, locale ja-JP)
[!] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
    ✗ Android licenses not accepted.  To resolve this, run: flutter doctor --android-licenses
[!] Xcode - develop for iOS and macOS
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Android Studio (version 4.1)
[!] Connected device
    ! Error: iPadPro is not connected. Xcode will continue when iPadPro is connected. (code -13)
    ! Error: iPhone XS is not connected. Xcode will continue when iPhone XS is connected. (code -13)

! Doctor found issues in 4 categories.

Android Studioは認識されましたが、Android Toolchainはエラーになっています。理由はAndroidのライセンスへまだ同意していないからのようです。出力されているコマンドを実行します。

$ flutter doctor --android-licenses

画面の指示に従ってライセンスに同意したら、再度、flutter doctorを実行します

$ flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel stable, 2.0.4, on macOS 11.2.3 20D91 darwin-arm, locale ja-JP)
[✓] Android toolchain - develop for Android devices (Android SDK version 30.0.3)
[!] Xcode - develop for iOS and macOS
    ✗ CocoaPods not installed.
        CocoaPods is used to retrieve the iOS and macOS platform side's plugin code that responds to your plugin usage on the Dart side.
        Without CocoaPods, plugins will not work on iOS or macOS.
        For more info, see https://flutter.dev/platform-plugins
      To install see https://guides.cocoapods.org/using/getting-started.html#installation for instructions.
[✗] Chrome - develop for the web (Cannot find Chrome executable at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome)
    ! Cannot find Chrome. Try setting CHROME_EXECUTABLE to a Chrome executable.
[✓] Android Studio (version 4.1)
[!] Connected device
    ! Error: iPadPro is not connected. Xcode will continue when iPadPro is connected. (code -13)
    ! Error: iPhone XS is not connected. Xcode will continue when iPhone XS is connected. (code -13)

! Doctor found issues in 3 categories.

Android ToolchainもOKになりました。

Flutterのセットアップについて

Flutterのセットアップについては以下の記事を参照してください。

[clink url=https://www.rk-k.com/archives/4087]

著書紹介

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

Akira Hayashi (林 晃)のアバター Akira Hayashi (林 晃) Representative(代表), Software Engineer(ソフトウェアエンジニア)

アールケー開発代表。Appleプラットフォーム向けの開発を専門としているソフトウェアエンジニア。ソフトウェアの受託開発、技術書執筆、技術指導・セミナー講師。note, Medium, LinkedIn
-
Representative of RK Kaihatsu. Software Engineer Specializing in Development for the Apple Platform. Specializing in contract software development, technical writing, and serving as a tech workshop lecturer. note, Medium, LinkedIn

目次