Ubuntu20.04编译Android 11 源码

本文介绍了在Ubuntu环境下安装repo、openjdk1.8以及相关编译依赖的步骤,并详细给出了在编译过程中遇到的错误及解决方案,包括处理找不到libesd0-dev包的问题和解决libncurses.so.5库缺失的错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装repo
关于repo的安装,网上资料较多,此处仅作简述。

sudo apt install repo
sudo apt install curl
安装配置git
sudo apt-get install git
git config --global user.email "xxx@yyy.com"
git config --global user.name "xxx"

打开~/.bashrc
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo/'
执行 source ~/.bashrc 使其生效
新建源码目录并进入。
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-11.0.0_r33
repo sync 

2、安装openjdk1.8

Ctrl+Alt+T 执行以下命令:
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update 
sudo apt-get install openjdk-8-jdk
在多个JDK版本中切换JDK
sudo update-alternatives --config java
sudo update-alternatives --config javac
检查JDK版本:
java -version

3、其他编译依赖:

sudo apt-get install libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-dev g++-multilib
sudo apt-get install -y git flex bison gperf build-essential libncurses5-dev:i386
sudo apt-get install tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo apt-get install dpkg-dev libsdl1.2-dev libesd0-dev
sudo apt-get install git-core gnupg flex bison gperf build-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 libgl1-mesa-dev libxml2-utils xsltproc unzip m4
sudo apt-get install lib32z-dev ccache
sudo apt-get install libssl-dev

报错
unable to locate package libesd0-dev

sudo vim /etc/apt/sources.list  //在行尾添加如下两行的内容
deb http://archive.ubuntu.com/ubuntu/ trusty main universe restricted multiverse

更新软件源并重新安装:

sudo apt-get update && sudo apt-get install libesd0-dev

4、编译:

source build/envsetup.sh
lunch 29
make

报错:

prebuilts/clang/host/linux-x86/clang-3289846/bin/clang.real: error while loading
 shared libraries: libncurses.so.5: cannot open shared object file: No such file
 or directory
09:36:08 ninja failed with: exit status 1

#### failed to build some targets (03:21 (mm:ss)) ####

解决:

sudo apt-get install libncurses*

报错:

下列软件包有未满足的依赖关系:
 libncurses5-dbg : 依赖: libtinfo5 (= 6.0+20160213-1ubuntu1) 但是 6.2-0ubuntu2 正要被安装
                   依赖: libncurses5 (= 6.0+20160213-1ubuntu1) 但是 6.2-0ubuntu2 正要被安装
                   依赖: libtinfo5-dbg (= 6.0+20160213-1ubuntu1) 但是它将不会被安装
 libncursesada3-dev : 依赖: gnat-4.9 但是它将不会被安装
 libncursesw5-dbg : 依赖: libtinfo5 (= 6.0+20160213-1ubuntu1) 但是 6.2-0ubuntu2 正要被安装
                    依赖: libtinfo5-dbg (= 6.0+20160213-1ubuntu1) 但是它将不会被安装
                    依赖: libncursesw5 (= 6.0+20160213-1ubuntu1) 但是 6.2-0ubuntu2 正要被安装

解决:
根据提示安装对应版本的依赖包:
eg:

 sudo apt-get install libncurses5=6.0+20160213-1ubuntu1
 sudo apt-get install libtinfo5=6.0+20160213-1ubuntu1
 sudo apt-get install libncursesw5=6.0+20160213-1ubuntu1
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值