题记:编译花了将近4小时,所以编译源码是很费时的哦,可以在编译的时候可以学习其他的知识

编译环境准备

  软件:WorkStation10

  系统:ubuntu14.04

  内存:8G

  处理器:4个

  磁盘大小:100G

以下是安卓7.1源码(全志)和内核编译步骤:

一、内核编译

  1、安装jdk8(注本人使用的是openjdk8)

    sudo add-apt-repository ppa:openjdk-r/ppa
    sudo apt-get update
    sudo apt-get install openjdk--jdk
    java -version #检测jdk安装

  2、安装必要的一些包(以下的包,都是采坑一个个过来的,所以请务必都安装)

    sudo apt-get install gawk  #解决:awk: line 2: function strtonum never defined
    apt-get install fakeroot  #解决:../scripts/build_rootfs.sh: line 19: fakeroot: command not found
    sudo apt-get install g++-multilib gcc-multilib  #解决:lichee/tools/pack/pctools/linux/android/mkbootimg: No such file or directory

  

  3、不出意外的话,就可以看到如下成功编译结果

二、安卓源码编译

  1、进入安卓源码目录,执行以下命令

  $cd ../android/   #安卓源码目录
  $source build/envsetup.sh    #启动源码编译环境(即添加编译命令)
  $lunch #选择平台编译选项

 

  2、启动lunch命令,选择平台(一般选22),如下图所示。

  这些系统平台含义如下:

    eng: 工程机,
    user:最终用户机
    userdebug:调试测试机
    tests:测试机

  

  3、执行以下命令,编译安卓源码

    $extract-bsp
    $make -j4 #编译(make -j4表示处理器4个,根据电脑配置选择)
    $pack #将编译成功的系统打包成img镜像。

你以为步骤3这么容易?  No 。我大概花了4个晚上才成功,每天有不同的问题出现,主要是编译环境的问题,下面贴出我编译过程中出现的问题以及解决方法。

FAQ

问题一:出现*****prebuilts/misc/linux-x86/bison/bison.......

解决方法:sudo apt-get install bison
问题二:出现ninja: build stopped: subcommand failed Android 或者GC overhead limit exceeded.

解决方法:修改prebuilts/sdk/tools/jack-admin 文件内容

将JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -cp $LAUNCHER_JAR $LAUNCHER_NAME"  改为
JACK_SERVER_COMMAND="java -XX:MaxJavaStackTraceDepth=-1 -Djava.io.tmpdir=$TMPDIR $JACK_SERVER_VM_ARGUMENTS -Xmx4096m -cp $LAUNCHER_JAR $LAUNCHER_NAME"

注:-Xmx4096m或者-Xmx4g ,表示使用主机内存的一半,前面我说本人使用的内存是8G哦,当然如果你的内存大,可以使劲的用

问题三:出现Failed to contact Jack server: Problem reading .jack-server/client.pem. Try 'jack-diagnose'

  解决方法:

  jack-admin kill-server  #杀死jack进行

  jack-admin uninstall-server  #卸载jack服务

  make    # 编译

注:Jack编译器工具是一套新的Android编译工具用来将Java代码转换为Android dex字节代码,所以你jack就是用来将java代码编译成安卓的字节码编译器

 希望这些可以帮助大家!

ubuntu14.04+安卓7.1(全志源码)+openjdk-8编译的更多相关文章

  1. 很不错的安卓FadingActionBar控件源码

    这个我刚刚从一个github下载过来的,自己测试一下运行了,感觉还不错的,安卓FadingActionBar控件源码,现在就给大家分享一下,源码我已经上传到源码天堂那里了,想下载的朋友可以去那里下载吧 ...

  2. Ubantu16.04进行Android 8.0源码编译

    参考这篇博客 经过测试,8.0源码下载及编译之后,占用100多G的硬盘空间,尽量给ubantu系统多留一些硬盘空间,如果后续需要在编译好的源码上进行开发,需要预留更多的控件,为了防止后续出现文件权限问 ...

  3. [转]【安卓笔记】AsyncTask源码剖析

    [转][安卓笔记]AsyncTask源码剖析 http://blog.csdn.net/chdjj/article/details/39122547 前言: 初学AsyncTask时,就想研究下它的实 ...

  4. Ubuntu 10.04 安装Qt4.8.1 源码后字体模糊的问题

    Ubuntu 10.04 安装QT4.8.1 源码后字体模糊的问题. 附加解决 QT SDK 4.8.1 链接失败的问题 Ubuntu 10.04 编译QT源码后,编译程序,运行后IPA字体无法正常显 ...

  5. android源码下载以及编译自己的ROM

    android源码下载以及编译自己的ROM 最近发现kernel.org被墙了,为什么这种网站也能被墙了? 要想下载源码的话,只能绕过去了.下面是我从网上搜索到的一些下载方法: =========== ...

  6. Harmony OS 开发避坑指南——源码下载和编译

    Harmony OS 开发避坑指南--源码下载和编译 本文介绍了如何下载鸿蒙系统源码,如何一次性配置可以编译三个目标平台(Hi3516,Hi3518和Hi3861)的编译环境,以及如何将源码编译为三个 ...

  7. Android之源码之模块编译和调试

    Android之源码之模块编译调试 (一) 进行源码模块修改进行编译的调试 1.首先是从git或者svn上拉一套完整的工程下来,然后全编一下,一般这个时间比较长,大概会得2,3个小时左右, 2,编译成 ...

  8. 【原创】从零开始学SpagoBI5.X源码汉化编译

    从零开始学SpagoBI5.X源码汉化编译 一.新建Tomact Server 服务器并配置测试1.文件-新建-其他-过滤server-服务类型选择Tomact V7.0 Server2.根据需要修改 ...

  9. 51ak带你看MYSQL5.7源码2:编译现有的代码

    从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 目录: 51ak带你看MYSQL5.7源码1:main入口函数 51ak带你看MYSQL5.7源码2:编译 ...

随机推荐

  1. 第二章· MySQL体系结构管理

    一.客户端与服务器模型  1.mysql是一个典型的C/S服务结构 1.1 mysql自带的客户端程序(/application/mysql/bin) mysql mysqladmin mysqld ...

  2. css文字样式与div

    文字与图片 如果要要将字移动到图片的上方,这里就需要定位一下,设置div为父级,为相对定位:设置h1为绝对定位: div{position:relative;} h1{font-size:16px;c ...

  3. zencart更改css按钮的宽度css buttons

    includes\functions\html_output.php 大概323行的zenCssButton函数 function zenCssButton($image = '', $text, $ ...

  4. JAVA内存存储分配粗略讲解

    以String类型为例:String s1 = "ABC"; String s2 = "ABC"; String s3 = new String("A ...

  5. Cordova热更新和App升级

    web代码的更新此更新方式,只需要更新web前段代码,不需要更新android的原生代码.只是对js.html等的更新.1.添加插件 Cordova Hot Code Pushcordova plug ...

  6. MySQL_DBA整理

     MySQL_DBA整理(转) 2011-01-26 16:51:41 分类: Mysql/postgreSQL 转自:丁丁:http://www.itpub.net/thread-831154-2- ...

  7. 3 触发器报警-->远程执行命令

    0.需求 上节课我们讲了,触发器报警,发送邮件,这节课主要讲下远程执行命令 流程图如下 item--> triggers-->action--->Email     |——>远 ...

  8. charindex函数--->检索字符在字符串中的起始位置

    语法:CHARINDEX(检索字符,被检索字符串) 返回值:检索字符在被检索字符串中的起始位置.

  9. 9种纯CSS3人物信息卡片动态展示效果

    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8&quo ...

  10. 【WinForm-TreeView】实现Win7 Areo效果

    效果图: 新建一个继承自TreeView的控件类,代码如下: using System; using System.Windows.Forms; using System.Drawing; using ...