ビルド環境OS:Ubuntu 14.04.1 LTS
課題:記載されている手順ではビルドエラーとなる(12.04 LTSでビルド確認となっているので諸々バージョンが異なる)
Ubuntuはクリーンな状態。
大元となる手順
https://source.android.com/source/building.html
sudo apt-get update
sudo apt-get install openjdk-7-jdk
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
※ openjdkをインストールする手順になっているが、後で削除することになる
The correct version is: Java SE 1.6.
上記2行目をopenjdk-6-jdkに差し替えても解消できない。
sudo apt-get purge openjdk*
sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java6-installer
error: ‘indexOfKey’ was not declared in this scope
を解消するためgcc・g++のバージョンを4.4にダウンする。
downgrade your gcc version to gcc 4.4
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
sudo rm /usr/bin/gcc
sudo rm /usr/bin/g++
sudo ln -s /usr/bin/gcc-4.4 /usr/bin/gcc
sudo ln -s /usr/bin/g++-4.4 /usr/bin/g++
sudo apt-get install g++-4.4-multilib
dalvik/vm/native/dalvik_system_Zygote.cpp:222:43: error: ‘setrlimit’ was not declared in this scope
を解消するためコードを一部修正(ヘッダファイルをひとつインクルードする)
dalvik/vm/native/dalvik_system_Zygote.cpp
にsys/resource.hをインクルードする行を追加する
#include <sys/resource.h>
Can't locate Switch.pm in @INC
sudo apt-get install libswitch-perl
git設定
git config user.name "名前"
git config user.email メールアドレス
ダウンロード
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
mkdir ~/WORKING_DIRECTORY
cd ~/WORKING_DIRECTORY
repo init -u https://android.googlesource.com/platform/manifest
repo sync
repo forall -pc 'git log --no-merges --oneline android-4.4.2_r2..android-4.4.2_r1'
repo sync
ビルド
. build/envsetup.sh
lunch
※ 選択
make -j4