無料Androidエミュレーターが応答停止・黒画面になるたび、Unity Editorを再起動せずに復旧した話
個人開発中のスマホゲーム「MineEmpire3D」(Unity製)で、無料のAndroidエミュレーター(AVD)を使った動作確認中に起きた応答停止・黒画面の記録です。2026年10月23日から26日にかけて、AIサブエージェント(実装担当のLuna、レビュー担当のSol)とともに検証作業を進める中で発生したもので、架空の体験ではなく実際の開発記録(devlog)に基づいています。
無料Android Emulatorでの購入・保存テストと既知の例外
設備の仮デザインを組み込んだAPKを作成し、無料のAndroid Emulatorで一連の動作を確認しました。資材路を2回完掘し、GUI上で設備を2種購入、画面を切り替えて保存、COLD再起動(完全な再起動)を行うという手順です。
この過程で、既知の例外として以下が各PIDに1件ずつ記録されました。
AssetPackManager ClassNotFoundException
この例外は毎回出るものの、購入後の2保存のSHA(内容のハッシュ値)は一致し、元のAndroid上の6保存を復元した後の最終起動でもSHAが一致したため、動作そのものへの影響はないものとして扱い、作業を継続しました。所要時間は約20分でした。
AVD停止の再発条件を5パターンで比較するも再現せず
別の作業では、AVD(エミュレーター)が停止する現象の再発条件を特定するため、通常起動・再起動・解像度変更直後・待機付きなど5つの条件に限定して比較するテストを行いました。
この調査の途中で、集計処理を行う自動承認レビューがCodexの利用上限に達して失敗し、処理が未実行のまま中断しました。その後、sk(運営者)が続行の操作を行ったことで、同じ経路で作業を再開しています。
5条件すべてで起動・表示には成功し、停止の再現は確認できませんでした。待機の有効性や停止の原因は特定できず、恒久的な対策も決まりませんでした。既知のAssetPackManager例外は、この条件下でも各1件残っています。作業の前後では、元の6保存を復元してSHA一致を確認し、比較用に使った3保存についても内容の一致、製品側119件のファイルとAPK・Launcherが変化していないことを確認しました。中断時間を除いた所要時間は約15分でした。
星冠の描画確認で発生したEGL_BAD_CONFIGと初回描画の失敗
スミレコウモリ用の星冠アイテムの取得・装備・保存を確認しAPKを更新する作業では、以下のエラーが発生しました。
eglCreateContext: EGL_BAD_CONFIG: no ES 3.2 support
同時に、Launcherの初回描画が90秒待っても完了せず失敗し、画面取得も20秒でタイムアウトしました。さらに、通常画面での検証用座標にも誤記があることが分かりました。
対応として、同じ起動PIDを追加で観測しましたが「Ready」状態には至らなかったため、検証用アプリを一度停止し、保存データを保管した上で画面サイズを通常サイズに戻してから同じAPKを再試行しました。その結果、通常サイズでのLauncher起動には成功し、座標の誤記を訂正した上で両方のPet(コウモリ)の描画を確認できました。描画が初期化に失敗した根本原因は特定できていません。
作業後の確認では、Editorの32項目を含む最終53項目の照合がすべて一致し、v209ビルドはエラー0・警告3件で成功、インストール済みのSHAも一致しました。実機・長時間動作・実際の決済課金については未確認のままです。所要時間は約35分でした。
まとめ:発生したエラーと復旧の対応
| 日付 | 事象・エラー | 対応 | 結果 | 所要時間 |
|---|---|---|---|---|
| 10/23 | AssetPackManager ClassNotFoundException(既知) | 購入・保存・COLD再起動を通常通り実施 | SHA一致、動作への影響なしと判断 | 約20分 |
| 10/24 | AVD停止の再発条件比較(5パターン) | 通常/再起動/解像度変更直後/待機付きで比較 | 再現なし、原因未特定 | 約15分(中断時間除く) |
| 10/26 | EGL_BAD_CONFIG、Launcher初回描画90秒待ち失敗 | 検証アプリ停止→通常サイズに戻して再試行 | 通常サイズで起動成功、根本原因は未確定 | 約35分 |
いずれの事象も、Unity Editor自体を再起動するのではなく、エミュレーター側のアプリ停止・サイズ変更・再試行という範囲での対応にとどめています。AVD停止や描画初期化失敗の根本原因は、この時点では特定できておらず、再現しない限り深追いしない方針で作業を進めました。
この記事は運営者の実際の開発記録をもとに、AIの支援を受けて作成しています。