真机64位的ubuntu12.04下载及编译android-4.0.4_r2的全过程记录。
1.
解决ubuntu下vi在编辑模式下用不了方向键和退格键
$sudo apt-get remove vim-common
$sudo apt-get install vim
2.
更新ubuntu到源问题;
3.
添加hosts中到服务器地址:
在Linux中到/etc/hosts中,添加如下:
203.208.46.207 android.googlesource.com
203.208.46.207 storage.googleapis.com
203.208.46.207 source.android.com
203.208.46.207
4.
在/home/tommy目录下新建一个bin目录;
进入bin目录里面,执行:
git clone
下载完成后,进入repo文件夹,切换到稳定分支:
执行:git checkout -b stable origin/stable
这就下载了repo这个工具,但这个工具命令需要添加到系统到环境变量中去,
将repo命令所在的目录,即/home/tommy/bin/repo添加到环境变量中:
添加环境变量有两种方法,一个是针对当前用户,另一个针对root用户:
针对当前用户:
sudo gedit ~/.bashrc
在bashrc文件最后添加下面命令,
export PATH=/home/tommy/bin/repo:$PATH
若要使其立即生效,在终端执行:
source ~/.bashrc
查看显示系统环境变量到路径:
echo $PATH
就可以看到环境变量是否添加到系统中。
针对root用户:
sudo gedit /etc/environment
在PATH="....“中末尾处添加 ”冒号:“加上 ”你的环境变量路径“
如要立即生效,执行:
source /etc/environment,或重启电脑。
下面这两行可以不要:-----------------------------------------------
#在tommy目录下新建目录:android4.0.4,并进入该文件夹:
#repo init -u
------------------------------------------------------------------
repo init -u -b android-4.0.4_r2
需要google帐号姓名和邮箱地址:
用户名:xxx xxx
mail:xxxxxx@gmail.com
最后执行:
repo sync
2、下载Android 4.1源码,参考:,源码下载过程中经常会遇到下载失败的情况,非常浪费时间,所以编写一个失败重传的脚本可以减少很多不必要的麻烦。将下面的shell脚本保存为download.sh文件放到源代码目录中,执行./download.sh开始下载(替代文档中最后一步repo sync,其余步骤必须按照文档中介绍的一步一步来)
#!/bin/bash
echo "======start repo sync======"
repo sync
while [ $? == 1 ]; do
echo "======sync failed, re-sync again======"
sleep 3
repo sync
done
重新repo sync后,在下载到最后,可能会出现一段等待时间
Fetching projects: 98% (226/230) Fetching project platform/external/llvm
不要以为是死机。
①:安装jdk和更改编译器版本。
下面首先要做到就是安装jdk。不要采用apt-get或者ubutntu软件中直接安装jdk,这样在编译到
的时候,会出现jdk版本不一致到错误。直接到下面网址下载:
该版本是jdk-6u35-linux-i586.bin
安装和配置方法参考百度经验:
在编译到过程中会出现因gcc编译器版本不同产生到错误,所以需要提前将编译器版本更改为4.4版本。
安装gcc4.4:
sudo apt-get install gcc-4.4
sudo apt-get install g++-4.4
安装完成后需要将原gcc替换成gcc4.4的,
进入/usr/bin,用ls -l gcc* 可以查看gcc版本信息。
然后操作:
sudo mv gcc gcc.bak
sudo ln -s gcc-4.4 gcc
对于g++同理,
进入/usr/bin目录,执行:
sudo ln -s g++-4.4 g++
现在可以通过gcc -v查看版本信息了,为gcc-4.4就正确了。
②编译Android源码。
编译环境是真机安装64位的ubuntu12.04,编译过程中其实真正出现的错位就一处。
首先安装必要的库文件,
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
然后再执行:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
然后执行:
$ source build/envsetup.sh
$ lunch full-eng
$ make -jN
一开始写的make -j4,后来在编译过程中出现了错误,修改后就莫名的无法用make j4来编译了,
改用了make -j2也不可以,后来直接用make才OK。
第一步:这一步非常重要,中间就出现了一次错误就是由于编译器中的
g++不是4.4引起的。错误现象是下面:
make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] 错误 1
当更新过g++后,还是出现错误:
g++: selected multilib '32' not installed
make: *** [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/obbtool] 错误 1
这是因为缺少一个文件。
#这一步需要在降级gcc版本过后直接执行。
sudo apt-get install g++-4.4-multilib gcc-4.4-multilib
首先出现的错误是:
make: *** [out/host/linux-x86/obj/EXECUTABLES/emugen_intermediates/main.o] 错误 1
解决方法:是在下面路径中添加一个头文件声明。
development/tools/emulator/opengl/host/tools/emugen/main.cpp
添加:#include
后面编译过程中没有出现任何错误,编译了一夜,具体时间不清楚。
最后,编译完毕显示。
Install system fs image: out/target/product/generic/system.img
Target ram disk: out/target/product/generic/ramdisk.img
Target userdata fs image: out/target/product/generic/userdata.img
purple@myubuntu:~/android-4.0.4_r2$
然后可以将生成的三个镜像文件,拷贝到sdk的system-images中,替换掉sdk中4.0.3版本的API15版本,然后直接在
sdk manager中的Tools中设置虚拟设备执行,即可验证我们自己编译的android_4.0.4_r2版本的
正确性。
第2步:下载安装基于linux的Eclipse开发工具包。
我下载到版本是:eclipse-java-luna-SR1-linux-gtk.tar.gz
直接解压到/usr/local/eclipse目录下,这个是为自己设置到,然后在
/etc/profile最后添加:
#for eclipse
export PATH=/usr/local/eclipse:$PATH
然后,执行执行:source /etc/profile就可以了。
然后打开eclipse就直接在命令行输入eclipse就可以了。
第3步:下载安装基于linux到android SDK开发工具包。
我下载到版本是:android-sdk_r24.0.2-linux.tgz
安装android-sdk-linux 过程和安装eclipse是一样到,路径放在了
/usr/local/android-sdk-linux 中了。
这里就不再赘述。
android4.04_r2下载及编译过程记录.txt
阅读(413) | 评论(0) | 转发(0) |