源码编译之前请先下载源码 下载方法参照:https://blog.csdn.net/bgc525725278/article/details/84547775

一、编译步骤

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. 设置 quick-cocos2d-x 在 Mac 下的编译环境
  2. 模拟器中加载和使用SDCard卡
  3. Farsight(华清远见) s5pc100-a(A8) 开发板Android驱动开发环境搭建
  4. FFmpeg学习—android 利用ffmpeg 录制ogg格式音频文件
  5. Android桌面组件开发例子
  6. cocos2d-x 3.0 引用第三方库 及编译成apk时android mk文件写法
  7. Android(安卓)Donut Makefile分析之一 (build/envsetup.sh)
  8. Android+OpenCV4开发(一)——Android(安卓)NDK开发环境配置(生成C
  9. 安装android apk包/adb shell的常见问题及解决

随机推荐

  1. 如何跟踪调试Android的源码
  2. Android开发 - 获取Android设备的唯一标
  3. 【Android布局】在程序中设置android:gra
  4. android颜色渐变的顶部标题栏
  5. 《Android编程入门很简单》PDF版电子书下
  6. Android中横竖屏切换的问题
  7. Android 应用程序之间数据共享—ContentP
  8. Android GWES之Android消息系统
  9. 相对布局各种属性说明
  10. Android(安卓)录音实现(AudioRecord)