基于Ubuntu20.04编译android-10.0.0_r39源码

依赖安装

下面下载的操作请大家参看我的另一篇文章《基于ubuntu20.04使用国内镜像下载android-10.0.0_r39源码

sudo apt-get install -y bison build-essential ccache curl dpkg-dev flex g++-multilib gcc-multilib
sudo apt-get install -y gnupg gperf lib32ncurses5-dev lib32z-dev libc6-dev-i386 libesd0-dev libgl1-mesa-dev
sudo apt-get install -y libncurses5-dev:i386 libreadline6-dev:i386 libsdl1.2-dev libx11-dev libx11-dev:i386
sudo apt-get install -y libxml2-utils m4 tofrodos unzip x11proto-core-dev
sudo apt-get install -y xsltproc zip zlib1g-dev zlib1g-dev:i386

一般安装libesd0-dev时会出现问题,其解决办法如下

解决办法:
sudo vim /etc/apt/sources.list //在行尾添加如下两行的内容
deb http://us.archive.ubuntu.com/ubuntu/ xenial main universe
deb-src http://us.archive.ubuntu.com/ubuntu/ xenial main universe
更新软件源并重新安装:
sudo apt-get update && sudo apt-get install libesd0-dev

看网上有很多编译依赖项安装,里面与一些重复包,这里一并剔除了……

代码下载完成后,并安装了相关依赖项,下面就开始编译吧,不过编译的时间有点长,需耐心等待啊。

编译error

在编译的过程中,我碰到了一个错误

[error 01] java.lang.OutOfMemoryError

其解决方法,就是调整java的heap空间,我是在build/core/main.mk文件中加入语句

export _JAVA_OPTIONS="-Xmx8g"  #增加heap到8G

编译

下面的编译就是固定步骤了,先进入代码目录执行如下指令:

source build/envsetup.sh 
lunch
#当然也可以直接使用,lunch 24, 即aosp_x86_64项目
make -j4

编译完成后,会出现如下类似打印,这就说明编译完成了。

#### build completed successfully (02:34:50 (hh:mm:ss)) ####

启动emulator

编译完成后,先进入代码目录,执行如下

source build/envsetup.sh 
lunch aosp_x86_64  #也就是我们上面编译的项目
emulator

猜你喜欢

转载自blog.csdn.net/tianzong2019/article/details/106982518