Android2.3.3源码编译

参考:

http://source.android.com/source/initializing.html


编译Android源码的时候make有几十次了吧,一度还中断了几天不想再去调错误,当时觉得各种莫名其妙的错误,但是当编译通过之后,发现其实也没那么麻烦,关键要把一些环境和库配置好。

下面整理下编译Android2.3.3源码的整个流程,等我下次重新编译一次再附图。

操作系统:Ubuntu12.04 64位


一、开发环境

1.安装java并配置环境

我装的版本是java1.6.0,在官网上下载

2.安装一堆工具

sudo apt-get install git-core gnupg flex bison gperf zip curl libc6-dev lib32ncurse5-dev ia32-libs xllproto-core-dev libx11-dev g++-multilib mingw32 tofrodos python-markdown libxm12-utils valgrind \\ build-essential zlib1g-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev \\

这么多全装上吧,虽然不知道是不是都有用到。最烦的就是提示No such file or directory。

注:\\……\\中的软件属于有可能出问题的,包括名字输入不对(l1没分清楚),版本不对,或者版本不适用,根据提示修改就行。要特别注意的是build-essential,这个在我安装的时候默认装的是gcc4.7.2,可能Android2.3.3不能用这个版本编译,后来我改装4.4.3了,详见http://hi.baidu.com/designhouse/item/87c3568d091752c8b17154c3


二、下载源码

wget https://dl-太长不想打/repo

chmod a+x repo

sudp mv repo /bin/

创建一个目录用来放android源码,任意

mkdir xxx

cd xxx

进入自己建的文件夹准备下载

repo init -u https://android.太长/manifest -b android-2.3.3_r1

注:这里就要指定你要下的版本,不然默认就下最新版,版本好的名字可以网上查,或者等敲完命令会列出来

repo sync

开始下载,注:输入用户名,邮箱,支持断点续传,只要不改帐号。

文件大小大概是3.1G,一般下载几个小时。


三、编译源码

在下载的时间里可以做很多事,比如配置下环境,

官网上的配置:http://source.android.com/source/building.html,虽然不知道有没有用,不过还是照做了。

事实证明配置环境是非常重要滴,不然编译的时候会很痛苦,以下是我的/etc/profile文件,供大家参考一下

2 #JAVA
 33 export JAVA_HOME=/home/administrator/develop/jdk1.6.0_38
 34 export JRE_HOME=/home/administrator/develop/jdk1.6.0_38/jre 
 35 export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
 36 export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
 37 
 38 #ANDROID
 39 export ANDROID_SDK_HOME=/home/administrator/develop/Android/adt-bundle-linux-x86_64/sdk
 40 export PATH=$ANDROID_SDK_HOME/tools:$PATH
 41 
 42 #NDK
 43 export NDK_HOME=/home/administrator/develop/Android/android-ndk-r8d
 44 export PATH=$NDK_HOME:$PATH
 45 
 46 #C_INCLUDE 
 47 C_INCLUDE_PATH=$C_INCLUDE_PATH:/home/administrator/develop/Android/android-source/frameworks/base/include:/home/administrator/develop/Android/android-source/system/core/include:/usr/include
 48 export C_INCLUDE_PATH
 49 
 50 #export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mpc081/lib:/usr/local/gmp432/lib:/usr/local/mpfr242/lib
 51 #export LD_RUN_PATH=LD_LIBRARY_PATH
 52 


其中有安装其他软件时配的,具体忘了哪些是编译android源码必要的。

下载完源码之后运行make -j4,编译完后提示:

……/system.img

……/installed-files.txt


可能出现的错误:

error.GitError: manifest rev-list(……):…

原因:源码文件夹有其他版本源码

解决:删除.repo中除repo文件夹的其他所有文件


error:'indexofkey' was not declared in this scope

原因:似乎是编译版本不对

解决:后来改用版本gcc4.4.3(4.4.7也可以)


fatal error: asm/byteorder.h no such file or directory

原因:编译的好几分钟后才出来的错误...原来只是链接文件出错

解决:ln -s /usr/include/x86_64-linux-gnu/asm /usr/include


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值