macOS CatalinaでAndroidエミュレーターが起動しない原因と対処法(dyldエラー)

当ページのリンクには広告が含まれています。
macOS CatalinaのIntel Macで発生したdyldエラーと、Android Emulatorを35.3.11.0から30.4.5へ戻して起動した流れを示すイメージ

諸事情により結構古いAndroid開発環境を残す必要があり、普段使っているMacとは別に古いIntel MacBook Airを一台使用しています。何も変えた覚えがないのにある日いつも通りAVD ManagerからAndroidエミュレーターを起動しようとしたらエラーとなって起動できなくなっていました。

ターミナルから直接叩いてログを見ると、見慣れない一文が並んでいました。

dyld: Symbol not found: _kCGColorSpaceITUR_2100_HLG

調べたところ、今回のログはAndroid Emulatorに同梱されたライブラリがCatalinaにはないCoreGraphicsのシンボルを要求して起動に失敗したことを示していました。筆者のmacOS Catalina 10.15.7・Intel Mac環境ではAndroid Emulatorを35.3.11.0から30.4.5へ手動で戻すことで起動できています。この記事では、その切り分けと手順をまとめます。

検証環境(確認日:2026年9月)
マシン

MacBookAir6,2

OS

macOS Catalina 10.15.7

CPU

Intel Core i7

Android Studio

4.0.1

Android Emulator

35.3.11.0

目次

AVD ManagerからAndroidエミュレーターを起動できない

使用しているのは13インチのIntel MacBook Air(MacBookAir6,2)で、OSはmacOS Catalina 10.15.7です。このモデルはmacOS Big Surにも対応していますが、今回は古いAndroid開発環境を残すためCatalinaのままエミュレーターを起動する方法を確認しました。

AVD Manager上で該当のAVDを選んで起動ボタンを押してもエラー表示となり起動できませんでした。このエラー表示では「起動に失敗した」程度のことしかわからないので、ターミナルからSDKのemulatorディレクトリに移動してverboseオプション付きで叩いてみます。

コマンド
cd ~/Library/Android/sdk/emulator
./emulator -avd 【AVD名】 -verbose

返ってきたログの末尾はこんな感じでした(パスの一部は伏せています)。

実行結果
INFO | Android emulator version 35.3.11.0 (build_id 12836668) (CL:N/A)
INFO | Graphics backend: gfxstream
INFO | Found AVD name '【AVD名】'
DEBUG | Concatenated backend parameters: /Users/【ユーザー名】/Library/Android/sdk/emulator/qemu/darwin-x86_64/qemu-system-x86_64 -avd 【AVD名】 -verbose
dyld: Symbol not found: _kCGColorSpaceITUR_2100_HLG
Referenced from: /Users/【ユーザー名】/Library/Android/sdk/emulator/lib64/qt/lib/libQt6WebEngineCoreAndroidEmu.6.5.3.dylib (which was built for Mac OS X 11.0)
Expected in: /System/Library/Frameworks/CoreGraphics.framework/Versions/A/CoreGraphics
zsh: abort      ./emulator -avd 【AVD名】 -verbose

5行目のdyld: Symbol not found: _kCGColorSpaceITUR_2100_HLGが今回の根幹となるエラー内容です。

先に結果だけ知りたい人のための早見表

原因の説明の前に、実際に試したAndroid Emulatorのバージョンと結果をまとめておきます。

Android Emulator今回の環境での結果
35.3.11.0(問題発生時に導入されていた版)dyldエラーで起動不可
34.2.16(ダウングレードして試した版)同じdyldエラーで起動不可
30.4.5(build 7140946)起動成功

今回試した34.2.16では解消せず、30.4.5で起動できました。この結果だけではCatalinaで動作する最も新しいバージョンまでは判断できません

HAXMではなくmacOSとの相性が原因だった

今回はHAXMのインストール状態やkextの許可状況も確認しました。ただ、提示されたログではCoreGraphicsのシンボル不足によりライブラリの読み込みに失敗しており、まず対応するAndroid Emulatorのバージョンを確認する必要がありました。

エラーメッセージの中でポイントになるのはここです。

libQt6WebEngineCoreAndroidEmu.6.5.3.dylib (which was built for Mac OS X 11.0)

Android Emulator本体は内部でQt6WebEngineというライブラリを使っていて、このライブラリはmacOS 11.0(Big Sur)以降を前提にビルドされています。

_kCGColorSpaceITUR_2100_HLGはHDR動画のHLGという色空間を扱うCoreGraphicsのAPIで、Big Sur以降にしか存在しません。Catalinaのシステムにはこのシンボル自体が無いので動的リンカ(dyld)がライブラリを読み込む段階でクラッシュしていた、というのが正体でした。

似たような現象は他のIntel Mac利用者からも報告されていて、古いMacBook Proでも同じ「dyld: Symbol not found」がAndroid Emulator側の新しいバイナリで発生したという事例があります(kodejava.orgの記事)。HAXMやVT-xの設定を疑う前にエラーメッセージの中に「which was built for Mac OS X」という一文がないか確認してみる価値はあると思います。

以前は同じAVDが動いていましたが、今回確認したAndroid Emulatorは35.3.11.0でした。いつ、どの操作でこのバージョンになったかは正直ワカリマセン。自動更新が実行されたのかどこかで自分で更新してしまったのか

SDK ManagerのGUIでは最新版しか選べない

こうなると対処法としてはAndroid Emulatorのバージョンを下げる、いわゆるダウングレードですね。SDK Managerで「Show Package Details」にチェックを入れるとバージョン一覧が表示されます。

SDK ManagerのSDK Tools画面。Show Package Detailsが有効で、Android Emulator 35.3.11と更新候補37.1.11が表示されている
この画面では35.3.11が導入済みで37.1.11への更新が表示されています。Show Package Detailsを有効にしてもAndroid Emulatorの旧版を選ぶ一覧は表示されていません。

ですが、残念ながらAndroid Emulatorは最新版しか表示されませんでした。34.x系や30.x系を個別に選んでインストールする、ということはGUI上ではできませんでした。

手動でAndroid Emulatorをダウングレードする

公式にはEmulatorのダウンロードアーカイブページから該当バージョンのzipを落としてSDK内のemulatorフォルダを丸ごと入れ替える手順が案内されています。流れ自体はシンプルです。

Step

既存のemulatorフォルダを退避する

Android Studioと起動中のエミュレーターを終了してから作業します。以下はSDKが~/Library/Android/sdkにある場合の手順です。保存先を変更している場合は実際のパスに読み替えてください。既にemulator_bakフォルダがある場合は、別の退避名を使い、以降のコピー元もその名前に合わせます。

コマンド
cd ~/Library/Android/sdk
mv emulator emulator_bak
Step

目的のバージョンをダウンロードして展開する

今回の環境ではmacOS 11.0未満でも動くもっと古いビルドまで戻す必要がありました。公式のアーカイブページには執筆時点で32.1.10以降のバージョンしか掲載されておらず、それより古いものは公式ページからは辿れませんでした。

SDKリポジトリのマニフェストや海外の技術ブログを当たった結果、Googleの配布サーバー自体にはまだ古いビルドのzipが残っていることがわかりました。今回使ったのは2021年ごろにリリースされたバージョン30.4.5です。

コマンド
curl -fL -o ~/Downloads/emulator-30.4.5.zip \
  https://dl.google.com/android/repository/emulator-darwin_x64-7140946.zip &&
unzip ~/Downloads/emulator-30.4.5.zip -d ~/Library/Android/sdk

このURLはGoogleの配布サーバー(dl.google.com)上のZIPファイルを直接指定しています。将来も取得できる保証はないため、ダウンロードに失敗した場合はそのまま展開へ進まず配布状況を確認してください

Step

quarantine属性を外す

ダウンロード方法によっては展開したファイルに隔離属性(quarantine)が付いている場合があります。配布元と対象フォルダを確認したうえで、展開したemulatorフォルダ内の隔離属性を削除します。この操作は起動時の確認に関係するもので、dyldのシンボル不足を解消するものではありません。

コマンド
cd ~/Library/Android/sdk
xattr -dr com.apple.quarantine emulator/

隔離属性と起動時の警告の関係を確認したい場合はGatekeeper・署名・公証の違いをまとめた記事も参考にしてください。

Step

起動確認

あとは通常通り起動を試すだけです。

コマンド
cd emulator
./emulator -avd 【AVD名】 -verbose

34.x系でも同じエラーが発生

34.2.16でも同じdyldエラーが発生し、今回の環境では起動できませんでした。最終的にバージョンを30.4.5までダウングレードすることで起動できるようになりました。互換性は単純なバージョン番号の差では判断できないため、読み込めなかったライブラリ名と不足しているシンボルを確認することが切り分けの手がかりになります。

package.xmlをコピーしてバージョンを合わせる

退避したemulatorフォルダからSDKがパッケージ情報を管理するためのpackage.xmlをコピーします。

コマンド
cp ~/Library/Android/sdk/emulator_bak/package.xml ~/Library/Android/sdk/emulator/package.xml

コピー先のpackage.xmlをテキストエディタで開き、末尾付近のrevision要素を今回導入した30.4.5に合わせて変更します。

package.xml
<revision>
  <major>30</major>
  <minor>4</minor>
  <micro>5</micro>
</revision>

この編集は導入したバージョンをSDK側へ正しく伝えるためのものです。更新を禁止する設定ではないため、SDK Managerで更新する際はAndroid Emulatorが更新対象に含まれていないか確認してください。

迷いやすいポイント

ダウンロードURLが見つからない、アクセスできない場合はどうすればいい?

まず公式アーカイブで必要なバージョンが配布されているか確認してください。古いZIPがGoogleの配布サーバーに残っている場合もありますが、ビルドIDだけで任意のバージョンを取得できるとは限りません。今回のURLが使えなくなった場合は、対象OS・CPU向けの正確なファイル名と配布元を確認する必要があります。

platform-toolsなど他のSDKコンポーネントもバージョンを合わせる必要はある?

Android Emulatorとplatform-toolsのバージョン番号をそろえる必要はありません。adbのAndroid側に対する後方互換性と、adb自体が古いmacOSで動くかどうかは別の条件です。今回のdyldエラーではEmulatorの入れ替えを扱いますが、他のツールにも起動エラーがある場合は、それぞれの対応OSを確認してください。

Apple SiliconのMac(M1以降)でも同じ問題は起きる?

今回の原因はIntel版バイナリがmacOS 11.0以降のCoreGraphicsシンボルを要求していたことなので、最初からmacOS 11以降で使うApple Silicon Macでは基本的に発生しません。ただしAndroid Emulator自体は今も更新が続いているため、別の互換性問題が起きた場合も「エラーメッセージ中の“which was built for”を確認する」という考え方はそのまま応用できます。

まとめ

  • 「dyld: Symbol not found」はHAXMやVT-xの問題ではなくAndroid Emulatorのバイナリが要求するmacOSバージョンとの非互換で起きることがあるよ。
  • エラーメッセージ中の「which was built for Mac OS X xx.x」を見るとどのバージョン以降が必要かの手がかりになるよ。
  • SDK ManagerのGUIでは最新版しか選べないので、古いバージョンに戻したいときは手動でのダウングレードが必要だよ。
  • ひとつ下のバージョンで直らないこともあるので必要ならもっと古い世代まで遡ることも検討してね。
  • 手動で入れ替えたらpackage.xmlのバージョンも合わせて、SDK更新時はAndroid Emulatorの更新対象を確認してね。

Android Studio・Gradleの互換性やADBを使った実機テストも確認したい場合はAndroid開発の記事をまとめたページから探せます。

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