Ubuntu 18 android 5.1.0系统编译

源码编译之前请先下载源码 下载方法参照:Ubuntu 18 android源码下载_学习,交流,积累-CSDN博客

一、编译步骤

1、进入下载的源码目录(确认当前分支是你的目标分支),输入如下命令:

source build/envsetup.sh

2、选择编译的room类型,输入如下命令:

lunch

说明:所有编译目标都采用 BUILD-BUILDTYPE形式,其中 BUILD 是表示特定功能组合的代号

BUILDTYPE 是以下类型之一: 
这里写图片描述 
三者具体差异Google也在官方文档中给出了说明:https://source.android.com/source/building 
这里写图片描述 
模拟器一般选eng,调试功能全开。 
调试真机的话选userdebug 。 
发行最终版本用user 。

官方给出了一份自己出厂设备的代号和编译配置选项 
这里写图片描述

 根据需要选择不同的版本进行编译。在模拟器上运行可以直接:lunch aosp_arm-eng

3、开始编译,输入如下命令:

make -j8

注:使用make命令来编译代码,为了提高编译速度,GNU Make 可以借助 -jN 参数处理并行任务,通常使用的任务数 N 介于编译时所用计算机上硬件线程数的 1-2 倍之间 使用命令:

cat /proc/cpuinfo | grep processor

N=cpu个数×2

4、坐等编译完成

5、启动模拟器

emulator

二、编译过程中遇到的问题

1、error while loading shared libraries: libncurses.so.5    
解决方法:sudo ln -s /lib/x86_64-linux-gnu/libncurses.so.6 /usr/lib/libncurses.so.5

2、找不到java,javac,javah,javap等命令

解决方法:

sudo ln -s /home/jdk/bin/jar             /bin/jar
 sudo ln -s /home/jdk/bin/java          /bin/java
 sudo ln -s /home/jdk/bin/javac        /bin/javac
 sudo ln -s /home/jdk/bin/javah       /bin/javah
 sudo ln -s /home/jdk/bin/javadoc  /bin/javadoc
 sudo ln -s /home/jdk/bin/javap      /bin/javap

3、make: *** [build/core/binary.mk:576: out/host/linux-x86/obj32/EXECUTABLES/aidl_intermediate/aidl_language_l.cpp] 已放弃 (core dumped)
make: *** 正在等待未完成的任务....

解决方法:export LC_ALL=C

4、libnativehelper/JniInvocation.cpp:45: error: unsupported reloc 43

解决方法:cp /usr/bin/ld.gold          prebuilts/gcc/linux-x86/host/x86_64-linux-glibc2.11-4.6/x86_64-linux/bin/ld

5、android源码编译之后emulator: ERROR: No initial system image for this configuration
问题原因是由于没有编译成功

解决方法:重新编译

6、build/core/main.mk:518: hardware/qcom/sdm845/Android.mk: 没有那个文件或目录

原因:分支中代码checkout的有问题,重新切分之

repo forall -c git reset --hard
repo init -u https://aosp.tuna.tsinghua.edu.cn/platform/manifest -b android-7.0.0_r1  //自己的目标分支
repo sync

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值