Android Oコンパイル環境構築、ubuntu 16.04に基づく


同社のAndroid 5.1のプロジェクトは完了し、コンパイル環境では同僚が配置したubuntu 12.04を使用しています.現在Android Oのプロジェクトを準備していますが、Android Oのソースコードをダウンロードし、コンパイルに多くのエラーが見つかりました.Android Oのコンパイル環境とAndroid 5.1の違いをネットで調べてみました.自分で新しいダウンロードからubuntu 16.04をインストールして、模索して、下のコンパイル環境の構築方法を総括して、みんなに参考にしてあげます.間違ったところがあれば、大神の皆さんに提出してください.
1、java 1.8の構成
udo add-apt-repository ppa:openjdk-r/ppa sudo apt-get update sudo apt-get install openjdk-8-jdk sudo update-alternatives --config java        Javaのバージョンsudo update-alternatives--config javacを選択     Javacのバージョンを選択
java –version                        Javaバージョンの表示
 
2、コンパイルソフトのインストール
      sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386 

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386libgl1-mesa-dev g++-multilib
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproczlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperfbuild-essential 
sudo apt-get install zip curl zlib1g-dev gcc-multilib g++-multilib
sudo apt-get install libc6-dev-i386
sudo apt-get install lib32ncurses5-dev x11proto-core-dev libx11-dev
sudo apt-get install lib32z-dev ccache
sudo apt-get install libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install libssl-dev
 
 
3、コンパイル時にout of memory errorが現れる
[ 82% 72369/88250] Building with Jack:out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex
FAILED:out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex
/bin/bashout/target/common/obj/JAVA_LIBRARIES/framework_intermediates/with-local/classes.dex.rsp
Out of memory error (version 1.3-rc6'Douarn' (441800 22a11d4b264ae70e366aed3025ef47362d1522bb [email protected])).
Java heap space.
Try increasing heap size with java option'-Xmx'.
Warning: This may have produced partial orcorrupted output.
[ 82% 72372/88250] ccout/soong/.intermediates/external/llvm/lib/CodeGen/libLLVMCodeGen/android_arm64_armv8-a_static_core/obj/external/llvm/lib/CodeGen/LiveVariables.o
ninja: build stopped: subcommand failed.
22:57:57 ninja failed with: exit status 1
make: *** [run_soong_ui] Error 1
解決方法:
1、Jackのプロファイルprebuilts/sdk/tools/jack-adminを修正する
これはJackを管理するshellスクリプトで、start-server関数を見つけて、その起動パラメータを直接修正して、元の
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1-Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR$LAUNCHER_NAME"
に変更
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1-Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m-cp$LAUNCHER_JAR $LAUNCHER_NAME"
Jackサーバはバックグラウンドでまだ実行されているので、変更後のパラメータを有効にするには、起動を再開してから起動する必要があります(makeはJackサーバを自動的に起動します).
次のコマンドを実行すると、Jackサーバはバックグラウンドで実行されるため、変更後のパラメータを有効にするには、停止してから起動を再開する必要があります(makeはJackサーバを自動的に起動します).
次のコマンドを実行します.
#サービスを先に停止
./prebuilts/sdk/tools/jack-admin stop-server
#サービスの再開
./prebuilts/sdk/tools/jack-admin start-server
環境を整えた後、make-j 16、翌日来たら##make completed successfully(59:36(mm:ss))が現れます.
大吉大利、今晩は鶏を食べます.