Cordova で Android エミュレータ起動時に「PANIC Missing emulator engine program for 'x86' CPU.」となる場合の対処方法
はじめに
Cordova で Android アプリエミュレータ起動時に PANIC: Missing emulator engine program for 'x86' CPU.
となる場合の対処方法。
1 | $ cordova emulate android |
TL;DR
- cordova-android が未サポートの API level を指定したエミュレータを起動しようとしていることが原因
- Android Studio で cordova-android がサポートしている API level のエミュレータを作成
- 2020/06/04 時点では API level 27(Android 8.1) がサポート範囲内での最新
- デバイス指定でエミュレータ起動:
cordova emulate android --target="TARGET DEVICE"
目次
環境・条件
1 | $ sw_vers |
詳細
原因
macでcordova環境を作ろうとしてつまづいたところ - アヤポコの雑記*2人目育児中 にも書かれているが、cordova-android が未サポートの API level を指定していることが原因。
結局古いAPIのエミュレータを入れたら正しく起動できた。cordovaが最新のバージョンのAPIには対応していなかったらしい。
macでcordova環境を作ろうとしてつまづいたところ - アヤポコの雑記*2人目育児中 より
下記を見る限り、現時点(2020/06/04)では API level 29 (Android 10) には非対応(?)っぽい?
(ちゃんと読んでないけど、Issue の Open が 2019/09/22 で、cordova-android の最新リリースが 2019/09/11 の v8.1.0 なので)
Support API level 29 (Android 10) · Issue #830 · apache/cordova-android
対処方法
ということで、cordova-android がサポートしている API level のデバイスを Android Studio で追加するとエラーは解決する。
なお、自分の環境では API level 27(Android 8.1)が起動できる最新バージョンだった。
1 | $ cordova run android --list |
しかし、やりたかったのは Android 10 でのダークテーマ検証だったので、そういうことじゃないんだよな感。。。
まとめ
- cordova-android が未サポートの API level を指定したエミュレータを起動しようとしていることが原因
- Android Studio で cordova-android がサポートしている API level のエミュレータを作成
- 2020/06/04 時点では API level 27(Android 8.1) がサポート範囲内での最新
- デバイス指定でエミュレータ起動:
cordova emulate android --target="TARGET DEVICE"
その他・メモ
人によっては環境変数の問題かもなので、以下が参考になるかも。
参考文献
- macでcordova環境を作ろうとしてつまづいたところ - アヤポコの雑記*2人目育児中
- Support API level 29 (Android 10) · Issue #830 · apache/cordova-android
関連記事
- Vue + Cordova + Firebase でプッシュ通知
- Cordova でアプリ名やアプリのバージョン情報などを取得
- Cordova で端末やエミュレータを指定してデプロイする
- Cordova QR コードスキャナのプラグイン追加でビルドできない問題の対応方法
- Cordova Android ビルド時に「'android.useAndroidX' property is not enabled」となる場合の対処方法
- Cordova Android で iframe 内のリンクをシステムデフォルトブラウザで開く方法
- JavaScript で URL のクエリパラメータを操作する方法
- jQuery Select2 で、初期値の設定と選択状態のクリア