ubuntu14.04+安卓7.1(全志源码)+openjdk-8编译

题记:编译花了将近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-8-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代码编译成安卓的字节码编译器

 

 希望这些可以帮助大家!

 

posted @ 2018-11-14 22:24  小白啊小白,Fighting  阅读(2372)  评论(0编辑  收藏  举报