Ubuntu 12.04 64bit版 で Android のビルド環境を作った時のメモ。
AOSP の master、android 4.0、android 2.3 のビルドと、
ビルドした Emulator の起動確認が出来た環境。
AOSP の master、android 4.0、android 2.3 のビルドと、
ビルドした Emulator の起動確認が出来た環境。
必要なソフトのインストール
libGL.so へのシンボリックリンク作成
Emulator 向けのビルド時にコケるので。
JDK のインストール
oracle のサイトに行く。
http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html
jdk-6u41-linux-x64.bin をダウンロードする。
ここではホームディレクトリ直下にダウンロード&展開するものとして扱う。
git/repo の設定
環境変数の設定
~/.bashrc に以下を追加する。
読み直す場合は以下のコマンドを実行する。
Android のビルド確認
master の場合
※build/core/definitions.mk を修正します(master ブランチの内容を一部取り込み)
補足
Unity の UI が嫌いな人向け。Classic 環境にする方法。
$ sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libc6-dev x11proto-core-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils python-software-properties xsltproc libx11-dev:i386 gcc-4.5 g++-4.5 gcc-4.5-multilib g++-4.5-multilib zlib1g-dev:i386 libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev lib32ncurses5-dev lib32readline-gplv2-dev lib32z-dev ia32-libs
libGL.so へのシンボリックリンク作成
Emulator 向けのビルド時にコケるので。
$ sudo ln -s libGL.so.1 /usr/lib/i386-linux-gnu/mesa/libGL.so
$ sudo ln -s mesa/libGL.so /usr/lib/i386-linux-gnu/libGL.so
JDK のインストール
oracle のサイトに行く。
http://www.oracle.com/technetwork/java/javase/downloads/jdk6downloads-1902814.html
jdk-6u41-linux-x64.bin をダウンロードする。
ここではホームディレクトリ直下にダウンロード&展開するものとして扱う。
$ cd ~/
$ chmod a+x jdk-6u41-linux-x64.bin
$ ./jdk-6u41-linux-x64.bin
git/repo の設定
$ mkdir ~/bin※メールアドレスとユーザ名は何でも良い。
$ curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
$ git config --global user.email "android"
$ git config --global user.name "android"
環境変数の設定
~/.bashrc に以下を追加する。
export CC=gcc-4.5追加後、読み直すか再起動する。
export CXX=g++-4.5
export JAVA_HOME=~/jdk1.6.0_41
export PATH=$PATH:$JAVA_HOME/bin
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=$PATH:~/bin
読み直す場合は以下のコマンドを実行する。
$ source ~/.bashrc
Android のビルド確認
master の場合
$ repo init -u https://android.googlesource.com/platform/manifestandroid-4.0.4_r1.2 の場合
$ repo sync -j8
$ source build/envsetup.sh
$ lunch full-eng
$ make -j8
※build/core/definitions.mk を修正します(master ブランチの内容を一部取り込み)
$ repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.4_r1.2android-2.3.7_r1 の場合
$ repo sync -j8
$ wget http://dl.dropbox.com/u/6433741/AOSP/Ubuntu-build.patch
$ git apply Ubuntu-build.patch
$ source build/envsetup.sh
$ lunch full-eng
$ make -j8
$ repo init -u https://android.googlesource.com/platform/manifest -b android-2.3.7_r1
$ repo sync -j8
$ source build/envsetup.sh
$ lunch generic-eng
$ make -j8
補足
Unity の UI が嫌いな人向け。Classic 環境にする方法。
$ sudo apt-get install gnome-session-fallback
Androidをソースからビルドする方法ですが、必要なツールをインストールする際、
lib32ncurses5-dev lib32readline-gplv2-dev lib32z-dev ia32-libs
の4つのツールについて、apt-get install しようとするとすでにつかえなくなっている、とエラーになってしまいます。
以前、WEBサイトなどで探し、代替のバージョンなどをインストールしたのですが、それが原因なのか、repo syncしようとするとエラーが発生してしまいます。
そもそもこれが原因なのかよく分かっていないのですが、今回、新しく環境を構築しておりまして、できるだけ綺麗な形で構築することが出きればと思っており、本来の対処法としてどのようにすべきなのか、お教えいただければ幸です。