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

题记:编译花了将近4小时,因此编译源码是很费时的哦,能够在编译的时候能够学习其余的知识java

编译环境准备linux

  软件:WorkStation10android

  系统:ubuntu14.04 ubuntu

  内存:8G工具

  处理器:4个学习

  磁盘大小:100G测试

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

1、内核编译spa

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

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

 

  二、安装必要的一些包(如下的包,都是采坑一个个过来的,因此请务必都安装)

    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

  

  三、不出意外的话,就能够看到以下成功编译结果

 

2、安卓源码编译

   一、进入安卓源码目录,执行如下命令

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

 

  二、启动lunch命令,选择平台(通常选22),以下图所示。

  这些系统平台含义以下:

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

  

  三、执行如下命令,编译安卓源码

    $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代码编译成安卓的字节码编译器

 

 但愿这些能够帮助你们!

相关文章
相关标签/搜索