列表 上一篇 下一篇

ubuntu12.04编译android最新版本

之所以写这篇文章是因为不一样的android版本编译需要不一样的环境,在阅读官方的教程时,对版本的的主线没把握住,导致有些地方不是很理解,所以在这里说一下环境搭建时与版本相关的几点问题还有环境搭建时遇到的问题

Android版本:最新版本即master分支

环境搭建:
1.操作系统安装:
因为要编译最新版本的android,也就是官方所说的master分支,所以对操作系统的要求是64位ubuntu12.04,这里要说一下,虽然官方的教程说64位ubuntu10.04,但是那是编译旧版本android的要求。

2.JDK的安装: 按照官网上的办法安装失败,建议自己下载java安装

3.库的安装: 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
出错:
libgl1-mesa-glx:i386 : Depends: libglapi-mesa:i386 (= 8.0.4-0ubuntu0.7)
Recommends: libgl1-mesa-dri:i386 (>= 7.2)
解决办法:
libgl1-mesa-glx:i386改为libglapi-mesa-lts-saucy:i386
另外若把libgl1-mesa-glx:i386改为libgl1-mesa-dri:i386系统重启后could not write bytes:broken pipe

4.设置缓冲:
prebuilts/misc/linux-x86/ccache/ccache -M 50G
官方说的prebuilt/linux-x86/ccache/ccache -M 50G是4.0.x和之前的老版本的
另外还需要注意,设置一次即可(永久有效),还有该命令的当前目录是源代码的根目录,所以该命令在下载好源码之后执行
官网原文:
The suggested cache size is 50-100GB. You will need to run the following command once you have downloaded the source code:

5.Repo的初始化:
repo init -u https://android.googlesource.com/platform/manifest
官方所说的:
repo init -u https://android.googlesource.com/platform/manifest -b android-4.0.1_r1
是选择指定的分支(也就是版本)。
repo init -u https://android.googlesource.com/platform/manifest这样是选择master分支,即最新版本

6.repo sync中断:
脚本解决:
#! /bin/bash
echo "=====start repo sync======"
~/bin/repo sync
while [ $? = 1 ]; do
echo “======sync failed, re-sync again======”
sleep 3
~/bin/repo sync
done