全志平台ubuntu14.04+安卓7.1+openjdk-8编译

编译环境准备

  软件:vbox

  系统: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安装

------------------------------------------------------------------------------------------------

openjdk7 
ubuntu系统安装openjdk7时,在ubuntu 14.04上安装能够直接使用下述命令: 
sudo apt-get update 
$ sudo apt-get install openjdk-7-jdk 
使用上述命令进行安装时,能够直接进行openjdk7的安装。

openjdk8 
opendjk8的安装按照google官方文档是需要ubuntu version >15.04,在v>15.04时,可以直接使用下述命令进行openjdk8的安装。

    $ sudo apt-get update
    $ sudo apt-get install openjdk-8-jdk
1
2
但是对于ubuntu14.04或者以下的版本,当然在编译android7.1.1源码时,不建议ubuntu版本低于14.04。当在14.04版本时,不能采用上述方式进行安装,需要下载3个deb安装包。 
• openjdk-8-jre-headless_8u45-b14-1_amd64.deb with SHA256 0f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0 
• openjdk-8-jre_8u45-b14-1_amd64.deb with SHA256 9ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849 
• openjdk-8-jdk_8u45-b14-1_amd64.deb with SHA256 6e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c

如果在安装过程中遇到错误,可以使用命令

sudo apt-get -f install
1
安装完成之后,可以使用下述命令查看现有安装的openjdk版本。

$ sudo update-alternatives --config java
$ sudo update-alternatives --config javac

-------------------------------------------------------------------------------------------------

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、不出意外的话,就可以看到如下成功编译结果

全志平台ubuntu14.04+安卓7.1+openjdk-8编译_第1张图片

 

二、安卓源码编译

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

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

 

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

全志平台ubuntu14.04+安卓7.1+openjdk-8编译_第2张图片

  这些系统平台含义如下:

    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编译)