Andoid 10 编译环境搭建

本文详细介绍了在Ubuntu 16.04虚拟机中搭建Android 10编译环境的步骤,包括下载源码、安装依赖库、配置环境以及解决可能出现的编译问题,如内存不足、ninja失败等。
摘要由CSDN通过智能技术生成

目录

1、搭建环境

2、可能遇到的问题


1、搭建环境

环境:虚拟机ubuntu 16.04 64位系统,本机WIN10系统。搭建虚拟机的时候存储空间适度大些。

1、下载源码

百度网盘 请输入提取码 提取码:31ob

2、解压

7z x android-10.0.0_r41.7z.001

如果没有 `7z` 命令需要自行安装, ubuntu 安装 7z 命令:`sudo apt-get install p7zip-full`

p7zip-full_9.20.1_dfsg.1-4_amd64.deb-Linux文档类资源-CSDN下载

3、安装依赖库

安装openjdk-8-jdk

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk
安装其他依赖库

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
sudo apt-get install libswitch-perl

参考文章:ubuntu16.04 android 10源码编译_淡泊明志,宁静致远-CSDN博客

安装依赖库后,最好重启下,否则可能出现比较奇怪的问题。

4、编译步骤

source build/envsetup.sh

lunch 26(aosp_x86_64_eng)

make -j8(8是核数,需要根据实际情况修改)

编译成功,会提示“build completed successfully”,见下图。

2、可能遇到的问题

1、Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

	Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
		at com.android.tools.metalava.doclava1.ApiFile.processKotlinTypeSuffix(ApiFile.java:293)
		at com.android.tools.metalava.doclava1.ApiFile.parseParameterList(ApiFile.java:750)
		at com.android.tools.metalava.doclava1.ApiFile.parseConstructor(ApiFile.java:358)
		at com.android.tools.metalava.doclava1.ApiFile.parseClass(ApiFile.java:256)
		at com.android.tools.metalava.doclava1.ApiFile.parsePackage(ApiFile.java:148)
		at com.android.tools.metalava.doclava1.ApiFile.parseApi(ApiFile.java:107)
		at com.android.tools.metalava.doclava1.ApiFile.parseApi(ApiFile.java:69)
		at com.android.tools.metalava.SignatureFileLoader.loadFromSignatureFiles(SignatureFileLoader.kt:42)
		at com.android.tools.metalava.SignatureFileLoader.load(SignatureFileLoader.kt:31)
		at com.android.tools.metalava.Driver.processFlags(Driver.kt:384)
		at com.android.tools.metalava.Driver.run(Driver.kt:147)
		at com.android.tools.metalava.Driver.run$default(Driver.kt:98)
		at com.android.tools.metalava.Driver.main(Driver.kt:86)
	00:54:51 ninja failed with: exit status 1

重启虚拟机即可。

如果还是不行,增加虚拟机内存,重启后就编译通过。

2、ninja failed with:exit status 1

	[  5% 487/8517] //frameworks/base:system-api-stubs-docs Metalava [common]
	FAILED: out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/system-api-stubs-docs-stubs.srcjar out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/system-api-stubs-docs_api.txt out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/system-api-stubs-docs_removed.txt out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/system-private.txt out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/system-private-dex.txt out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/system-api-stubs-docs_annotations.zip out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/api-versions.xml out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/system-api-stubs-docs_api.xml out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/system-api-stubs-docs_last_released_api.xml
	rm -rf "out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/out" "out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/srcjars" "out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/stubsDir" && mkdir -p "out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/out" "out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/srcjars" "out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/stubsDir" && out/soong/host/linux-x86/bin/zipsync -d out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/srcjars -l out/soong/.intermediates/frameworks/base/system-api-stubs-docs/android_common/srcjars/list -f "*.java" out/soong/.intermediates/frameworks/base/framework-javastream-protos/gen/gensrcs/frameworks/base/core/proto/android/privacy.srcjar out/soong/.intermediates/frameworks/base/framework-javastream-protos/gen/gensrcs/frameworks/base/core/proto/android/section.srcjar out/soong/.intermediates/frameworks/base/framework-javastream-protos/gen/gensrcs/frameworks/base/core/proto/android/app/activitymanager.srcjar out/soong/.intermediates/frameworks/base/framework-javastream-protos/gen/gensrcs/frameworks/base/core/proto/android/app/alarmmanager.srcjar out/soong/.intermediates/frameworks/base/framework-javastream-protos/gen/gensrcs/frameworks/base/core/proto/android/app/enums.srcjar out/soong/.intermediates/frameworks/base/framework-javastream-protos/gen/gensrcs/frameworks/base/core/proto/android/app/notification.srcjar out/soong/.intermediates/frameworks/base/framework-javastream-protos/gen/gensrcs/frameworks/base/core/proto/android/app/notification_channel.srcjar out/soong/.intermediates
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值