ununtu 14.04 安卓7.0 编译

Android 7.0 编译

1、编译环境  
ubuntu 14.04 64位  (必须64位)
gcc   4.8.4
硬盘容量: 100G +
内存:8G 

安装ubuntu后,换源,使用国内163源
sudo apt-get  update  //更新源
sudo apt-get  upgrade  //更新系统,会自动更新到gcc 4.8.4 

2、安装编译环境  jdk ,所需的是open jdk 1.8

sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get update
sudo apt-get install openjdk-8-jdk

sudo update-alternatives --config java
sudo update-alternatives–-config javac

3、下载android 7.0 源码

(1)使用已有的包(部分源码  23.1G,我所使用的)

创建一个文件夹Android,将已有源码拷贝到文件夹下解压

mkdir Android

tar -xvf repo.tar.gz

解压之后,会在本文件中生成一个 .repo 的隐藏文件(使用ll命令可以查看隐藏文件)

此时,需要进行同步,将完整的android源码同步下来,使用repo sync 进行同步,不过此时repo 工具还没有安装,安装repo 工具
mkdir ~/bin
PATH=~/bin:$PATH
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo

上面过程中,会提示没有curl 工具,还要安装curl:
sudo apt-get install curl
同步源代码:
安装完成后,执行pepo sync 命令:
$repo sync 

此时,出现错误
Error:Gitconfig: [Errno 2] No such file or directory
原因:应该是没有安装git
解决办法:
sudo apt-get install git
sudo apt-get install git-core
再次运行repo sync 

运行不久后再次出现错误:
Fetching projects:  98% (502/512)  
           error: Exited sync due to fetch errors 
解决办法:重新运行repo sync可以的到解决,直到同步完成


(2)源码包完全网上下载(没做)

初始化repo
$ mkdir Android
$ cd Android
repo初始化
$ repo init -u git://android.git.kernel.org/platform/manifest.git
在此过程中需要输入名字和email地址。初始化成功后,会显示:
repo initialized in /android
在~/Android下会有一个.repo的隐藏目录(使用ll 命令可以查看隐藏文件)。
同步源代码
$ repo sync

4、编译源码
增加ccahe 的大小(在当前编译目录下执行命令)
export USE_CCACHE=1
export CCACHE_DIR=.ccache

prebuilts/misc/linux-x86/ccache/ccache -M 50G


编译:(顺序执行,需要确认的采用默认的)
$source build/envsetup.sh
$lunch
$make -j4

编译过程中的错误提示:
错误1:
flex-2.5.39: fatal internal error, exec of /usr/bin/m4 failed
解决办法:安装bison (语法分析生成器)

sodu apt-get  install  bison

 

错误2:
/bin/bash: xmllint: command not found
解决办法:
sudo apt-get install libxml2-utils

错误3:
/bin/sh: 1: lzop: not found
解决办法:
sudo apt-get install lzop

错误4:
FAILED: /bin/bash out/target/common/obj/JAVA_LIBRARIES/core-all_intermediates/with-local/classes.dex.rsp  
Java heap space  
Try increasing heap size with java option '-Xmx'  
Warning: This may have produced partial or corrupted output.  
ninja: build stopped: subcommand failed.  
build/core/ninja.mk:146: recipe for target 'ninja_wrapper' failed  
make: *** [ninja_wrapper] Error 1  
\#### make failed to build some targets (05:44 (mm:ss)) ####  

解决办法:---配置heap size 大小
$:export JACK_SERVER_VM_ARGUMENTS="-Dfile.encoding=UTF-8 -XX:+TieredCompilation -Xmx4096m"
$:out/host/linux-x86/bin/jack-admin kill-server 
$:out/host/linux-x86/bin/jack-admin start-server 
 
错误5:
Internal compiler error (version 1.3-b8 'Douarn' (395600 eb49254e63b960b5a42dd28dcb1d46f28496395d by [email protected])). 
Warning: This may have produced partial or corrupted output. 
[ 82% 32919/39701] Building with Jack:...sr166-tests_intermediates/classes.jack 
ninja: build stopped: subcommand failed. 
make: *** [ninja_wrapper] Error 1 
#### make failed to build some targets (04:33:35 (hh:mm:ss)) #### 

编译器内部错误:我是重新编译了一次。

编译结束:
Creating filesystem with parameters: 
    Journal blocks: 7168 
    Label: system 
    Blocks: 458752 
    Block groups: 14 
    Reserved block group size: 111 
Created filesystem with 1961/114688 inodes and 164035/458752 blocks 
[100% 31172/31172] Install system fs i... out/target/product/generic/system.img 
out/target/product/generic/system.img+ maxsize=1918388736 blocksize=2112 total=1879048192 reserve=19379712 

你可能感兴趣的:(Android)