android 8.0如何编译,ubuntu16.0编译Android 8.0 Android O记录

一、必要的系统环境

硬盘200G,内存4G+,交换分区(swap)4G+(可装完系统后添加,见后面错误处理部分)

二、下载源码,国内可以在清华镜像站下载

网上有很多教程,这里就不再累述了

三、然后安装编译时需要的三方库

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip

安装open-jdk-8

sudo add-apt-repository ppa:openjdk-r/ppa

sudo apt-get update

sudo apt-get install openjdk-8-jdk

四、开始编译

然后进入到Android源码目录,假设源码在用户根目录的aosp目录中:

cd ~/aosp

然后初始化编译环境,使用下面的命令:

source build/envsetup.sh

然后选择要编译的目标版本,先输入lunch命令

lunch

然后在显示的列表中选择你的目标版本,输入相应的数字,按回车即可

然后使用make开始编译,可以使用-j参数增加编译的线程以提高速度,线程数量为cpu核心数的2倍比较合适,比如你的cpu是4核的使用

make -j8

就可以了

五、遇到的错误

1、错误1:

03:00:11 ckati failed with: signal: killed

build/core/main.mk:21: recipe for target ‘run_soong_ui’ failed

make: *** [run_soong_ui] Error 1

解决方案1:

增加swap空间

增加办法:

cd /

增加4个G的交换空间

sudo dd if=/dev/zero of=/swp bs=10M count=400

sudo mkswap /swp

sudo swapon /swp

用free -m查看交换空间的情况

这个方法增加的是临时交换空间,如需一直保留,需要其他操作

参考链接:

https://blog.csdn.net/yellow_hill/article/details/38894317

解决方案2:

export LC_ALL=C

2、错误2:

JackServer提示out of memory

解决方案1:

增加虚拟机内存至最少4G

解决方案2:

修改jack server内存

步骤:

打开./prebuilts/sdk/tools/jack-admin

找到下面这一行

JACK_SERVER_VM_ARGUMENTS=”${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8}”

修改为

JACK_SERVER_VM_ARGUMENTS=”${JACK_SERVER_VM_ARGUMENTS:=-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096M}”

保存jack-admin文件

在命令行执行

./prebuilts/sdk/tools/jack-admin kill-server

./prebuilts/sdk/tools/jack-admin start-server

重启jack server

然后重新编译

3、错误3:

Error while parsing ‘/media/liuderu/新加卷/android-8.0.0_r1/out/target/common/obj/APPS/QuickSearchBox_intermediates/with-local/classes.dex.flags’:1

原因:路径中包含中文字符

4、错误4

FAILED: out/target/common/obj/PACKAGING/checktestapi-current-timestamp

先执行一次make update-api然后再执行make

打赏

f69872ab5631b766bfb8c62b6b7d28fa.png微信扫一扫,打赏作者吧~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值