zoukankan      html  css  js  c++  java
  • ubuntu14.04+安卓7.1(全志源码)+openjdk8编译

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

     希望这些可以帮助大家!

  • 相关阅读:
    C#防止窗口重复打开
    c#image与byte数组的转换
    物理网卡地址
    C#[WinForm]实现自动更新
    js计算散点图方程式
    js遮罩效果
    js实现四舍六入 奇进偶舍
    ajax加载表格数据
    C#创建和调用WebService详细教程
    .NET中的CTS、CLS和CLR
  • 原文地址:https://www.cnblogs.com/ywjfx/p/9960817.html
Copyright © 2011-2022 走看看