副業×AI

無料Androidエミュレーターの応答停止・黒画面を復旧した記録

無料Androidエミュレーターが応答停止・黒画面になるたび、Unity Editorを再起動せずに復旧した話

個人開発中のスマホゲーム「MineEmpire3D」(Unity製)で、無料のAndroidエミュレーター(AVD)を使った動作確認中に起きた応答停止・黒画面の記録です。2026年10月23日から26日にかけて、AIサブエージェント(実装担当のLuna、レビュー担当のSol)とともに検証作業を進める中で発生したもので、架空の体験ではなく実際の開発記録(devlog)に基づいています。


無料Android Emulatorでの購入・保存テストと既知の例外

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の支援を受けて作成しています。