Ubuntu12.04(64bit) 下编译安装 Android4.0及4.22系统

原创 2015年05月09日 10:41:41

这段时间因为实验需要,所以编译了Android4.0和4.2.2系统源码,网上也有些教程,不过都多多少少有些错误,另外就是由于每个人编译时环境的差别等,具体的过程和遇到的错误可能不一样,不过大致的过程还是一样的,我就把我这编译时的步骤和遇到的一些问题列出来吧~

1. 安装Ubuntu12.04 64位,我是在virtualbox下虚拟安装的,具体过程自行百度~

2.下载源码,我没有用vpn,直接在网上搜到的源码包,感谢万能的百度云~

3.安装jdk.我用的是jdk1.6.0_45,用openjdk会有问题的,如果Ubuntu中自带了openjdk, 需要卸载。(4.0和4.2.2都是jdk1.6)

4.安装必要的库。这部分可以参考网上的其他博客,大部分库都给出了,我当时装的库如下:

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev   
lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev g++-multilib  
 mingw32 tofrodos python-markdown libxml2-utils xsltproc gcc-multilib  lib32readline-gplv2-dev

这些库也是参考的其他人的博客,编译时发现这些是不全的,不过不用担心,后面需要的时候再装就是了~

5. 初始化参数和变量: cd到你的源码目录,然后

$ source build/envsetup.sh

6. lunch 然后选1

7. make


8.然后就是“出现问题-查问题-解决问题”的环节,感谢万能的度娘和Google,我遇到的问题如下(当然还有些我没遇到你可能遇到的,请自行查询了):

Error:
frameworks/base/include/utils/KeyedVector.h:193:31: note: declarations in dependent base ‘android::KeyedVector<android::String8, android::sp<AaptDir> >’ are not found by unqualified lookup
frameworks/base/include/utils/KeyedVector.h:193:31: note: use ‘this->indexOfKey’ instead
make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/AaptAssets.o] Error 1
FIX1: vi frameworks/base/tools/aapt/Android.mk
Add '-fpermissive' to line 31:
LOCAL_CFLAGS += -Wno-format-y2k -fpermissive

Fix2: sudo apt-get install zlib1g-dev    sudo apt-get install lib64z1-dev or sudo apt-get install lib32z1-dev


Error:
程序“javac”已包含在下列软件包中:(java,jar is as same)

Fix: sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/SunJDK/jdk1.6.0_22/bin/javac 300


Error:
make: *** No rule to make target `run-java-tool', needed by `out/target/common/docs/doc-comment-check-timestamp'.  Stop.

Fix:
etc/profile : export ANDROID_JAVA_HOME=$JAVA_HOME 
source /etc/profile


Error:
make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] 
Fix: sudo apt-get install lib32ncurses5-dev or sudo aplt-get install libncurses5-dev


Error:
latform_types.h:12:22: 致命错误: X11/Xlib.h:没有那个文件或目录  
编译中断。  
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator_renderer_intermediates/main.o] 错误 1
Fix:
sudo apt-get install libx11-dev or sudo apt-get install x11-dev

Error:
/usr/bin/ld: cannot find -lX11
collect2: ld returned 1 exit status
make: *** [out/host/linux-x86/obj/lib/libOpenglRender.so] Error 1
Fix:
sudo apt-get installibgl1-mesa-glx:i386
sudo apt-get install libx11-dev:i386


Error:
development/tools/emulator/opengl/host/libs/Translator/GLcommon/GLDispatch.cpp:22:20: fatal error: GL/glx.h: No such file or directory
compilation terminated.
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libGLcommon_intermediates/GLDispatch.o] Error 1
Fix:
sudo apt-get install libgl1-mesa-dev 


Error:
make: *** [out/host/linux-x86/obj/lib/libGLES_CM_translator.so] Error 1
Fix:
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so 


(在网上搜到上面的解决方法,可是按照上述方法做了,问题依旧。经过多方实验,才发现问题所在。通过apt-get install的库不是libGL.so.1.2了。而是libGL.so.1.2.0.
所以大家在创建链接的时候最好去/usr/lib/i386-linux-gnu/mesa/这个目录下看看libGL的库版本,不要完全按照网上的照抄。现在网上的都是“sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2 /usr/lib/libGL.so ”而我的是sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1.2.0  /usr/lib/libGL.so 。可能库最近升级了。)

9. 解决make遇到的问题后,什么样子代表成功编译了呢?如下



10. 启动Emulator

想启动Emulator,是要配置下环境变量的:

/etc/profile:
export ANDROID_JAVA_HOME=$JAVA_HOME
export PATH=/home/yagami/android/out/host/linux-x86/bin:$PATH
export ANDROID_PRODUCT_OUT=/home/yagami/android/out/target/product/generic
export ANDROID_BUILD_TOP=/home/yagami/android

启动后如下:



ok,小伙伴就此可以愉快的读源码,改源码了~

4.0过程和这个相似,遇到问题要尽快网上查,大部分都是缺某个库,文件链接等问题,万能的互联网都有的~

参考链接:

http://www.cnblogs.com/qianxudetianxia/p/3681890.html

http://blog.csdn.net/oldmtn/article/details/9189509

android4.0编译 (ubuntu12.04 64bit)

1、初始化编译环境 (1)软件需求:     Python 2.5 -- 2.7, which you can download from python.org.     GNU Make 3....
  • evenness
  • evenness
  • 2013年11月14日 13:56
  • 1557

Ubuntu 12.04下安装编译OpenCV 2.4.x

转载自:http://blog.csdn.net/shuxiao9058/article/details/7525376              http://www.cnblogs.com/Jo...
  • xiaoxiong345064855
  • xiaoxiong345064855
  • 2012年05月20日 20:55
  • 3227

ubuntu12.04(32&64位)的安装

之前安装的是ubuntu12.04-64,由于在编译minigui时经常出错,所以决定安装32位的ubuntu12.04.距离上次安装时间太长了,所以很多细节都忘记了,捣鼓了半天才装好,所以必须几下,...
  • u010843358
  • u010843358
  • 2013年12月24日 20:49
  • 834

Ubuntuh桌面版12.04 32bit和64bit和13.04 32bit和64bit下载地址

遇到了可恶的墙谁也没有办法,代理也不是很好用!!现直接把这些ISO的地址贴出来供大家下载 Ubuntu 桌面版 12.04 LTS 32-bit ISO下载地址 http://china-images...
  • hotlinhao
  • hotlinhao
  • 2013年09月06日 17:18
  • 7482

在Ubuntu12.04 64bit中编译安装Codeblocks-svn

在Ubuntu12.04 64bit中编译安装Codeblocks-svn 分类: ubuntu12.04 codeblocks svn2012-05-26 16:31 524人阅读 评论(2)...
  • city_of_the_sky
  • city_of_the_sky
  • 2014年02月24日 09:35
  • 919

Android 4.0源码下载以及编译

Android 4.0源码下载以及编译
  • ly0904010214
  • ly0904010214
  • 2015年08月09日 15:17
  • 1274

ubuntu12.04下编译安装lamp(apache2.2.26 mysql5.5.36 php5.2.17)环境

这段时间尝试安装lamp,来做oa2013的迁移尝试,也是走了很多弯路,把其中一些记录下来,可能很乱,但是都是自己在其中遇到的一些不好解决的,以作记录备查。 使用vmware workstation...
  • lwprain
  • lwprain
  • 2014年03月26日 09:54
  • 3879

Ubuntu12.04下OpenCV2.4.9源码编译安装

环境:ubuntu 12.04 + OpenCV 2.4.9 OpenCV源码下载:http://sourceforge.net/projects/opencvlibrary/安装必要的库:...
  • JIAERPING
  • JIAERPING
  • 2015年11月05日 16:27
  • 265

Ubuntu12.04下编译安装tslib-1.4 图解

1、首先下载tslib-1.4.tar.gz包,该包用来管理触摸屏,例如可以用它来校正触摸屏,并保存校正数据,点此免费下载 2、将下载的文件存放在一个目录下,如下图我的存放目录 3.使用命...
  • mybelief321
  • mybelief321
  • 2013年06月30日 18:29
  • 4220

Win7系统下安装Ubuntu12.04(EasyBCD硬盘安装)

需要的东西有: 1,ubuntu系统镜像,下载地址:http://www.ubuntu.com/download/desktop 选64位吧,兼容性好些。 2,空闲的大于20G硬盘空间,这个大小根据个...
  • lengbuleng1107
  • lengbuleng1107
  • 2013年11月08日 23:54
  • 7404
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu12.04(64bit) 下编译安装 Android4.0及4.22系统
举报原因:
原因补充:

(最多只允许输入30个字)