16日前
※ この募集は締め切られました。
AOSP開発をDockerで進めたいのですが、エミュレータが表示されません
【教えてもらいたいこと】
プログラミング/スマートフォンアプリ
【具体的な相談内容】
はじめまして。私は現在、Android 12のAOSPをUbuntu 18.04のDockerコンテナ上で構築・開発しようとしています。ホストOSに直接入れるのを避け、Dockerで再現性のある環境を維持したいのですが、エミュレータが起動しても表示されない、ADBがつながらないなど多くの問題に直面してきました。何度も環境を作り直して試しましたが、表示系のトラブルとデバッグの難しさで限界を感じています。もしDockerやAOSP環境に詳しい方にサポートしてもらえたら、本当に助かります。
以下、詳しい経緯になります。
【AOSP開発の背景と苦労】
Android OSのソースコード(AOSP)をUbuntu 18.04のDockerコンテナ内でビルド・実行しようとしています。この構成にこだわっている理由や、ここまでに経験した主な課題は以下の通りです。
★なぜDockerを使うのか?
ホストOS(Ubuntu 22.04)とは環境を分離したい
AOSPの依存関係は繊細で、ホストに直接インストールすると他の作業に影響が出るため。
クリーンな環境をすぐに再現できる
Dockerfileを使って構築手順を明示化することで、何度でも同じ環境を再現できる。
将来的に別のマシンでも使いまわせる
AOSP開発環境をポータブルに保ちたい。
★なぜUbuntu 18.04にこだわるのか?
Android 12(AOSP)のビルド要件として Ubuntu 18.04が公式に推奨されている
Ubuntu 22.04や他の新しいバージョンだと、ビルドやエミュレータで不具合が出る可能性がある
実際、ホスト側では依存関係のズレやドライバ(libGLやVulkan)に関するエラーが出ていた
★ 直面した主な問題
エミュレータが起動しない/表示されない
DISPLAY設定やX11アクセス許可、Vulkan・OpenGL関連エラー
xeyesでX11が疎通するのに、エミュレータ画面は出ない
-no-windowでは動作するが、表示されないのでデバッグしにくい
ADBでデバイスが認識されない
adb devicesでホストとDockerの接続がうまくできていなかった
.androidフォルダのマウントを追加し、公開鍵を共有する対応を試行
AOSPビルドエラー
soong_buildでパーミッションエラー (/aosp/.bootstrapの書き込み不可)
ボリュームマウントしたホストディレクトリがroot所有になり、再ビルドに失敗
Dockerコンテナの管理
同名コンテナが残っていて再起動できない
一度消したつもりが完全に消えていなかった etc...
★メンターに伝えたいこと(ポイント)
AOSPをローカルでビルドし、Dockerで再現性のある環境を保ちながら開発したい
GPUやADB周りの接続問題がどうしても解決できず、助けが必要
表示系の問題が特にやっかいで、実機デバッグ以外の選択肢が見えない状態
初心者なりにたくさんのリソースを見て粘ってきたが、限界を感じている
【目安予算】
3000円
プロフィール
2019年末にJavaプログラマーに転職し、現在に至ります。
最初はSpringを使ったWebアプリのバックエンド開発に携わり、
現在はJavaを含め、サーバ関連(Linux, Shellscript)の業務も任されています。
元々、Androidに非常に興味があったため、去年1年間かけて業務と並行する形でJavaを用いたAndroidアプリをポートフォリオとして作成しました。
今年はLAMP環境をAWSで構築しながら、Kotlinを独学する目的も兼ねて家計簿アプリを作成中です。
また、大学時代はアメリカに留学しており、英語はネイティブレベルで話せます。
16日前