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

相关文章推荐

ubuntu12.04 64bit编译android ics4.0代码出现的/usr/bin/ld.bfd.real: cannot find 问题解决

编译环境 vm+ubuntu12.04 64bit + android ics4.0代码 在编译源代码的时候出现该错误 /usr/bin/ld.bfd.real: cannot fi...

[odroid-pc] ubuntu12.04 64bit Android4.0.3 源代码编译报错及解决办法

第一个错误:         host Executable: cmu2nuance (out/host/linux-x86/obj/EXECUTABLES/cmu2nuance_intermedia...

ubuntu11.10 64bit 编译android 4.0

;ubuntu11.10 64bit编译android 4.0   前言: 据说google内部使用的的ubuntu版本始终是10.4, 而我一直使用的编译2.3Gingerbread的 ...

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

由于codeblocks-svn版本比官方的codeblocks的要好用的多,所以一直想在我的爱本的Ubuntu系统中安装codeblocks-svn版本,本想在网上找能在Ubuntu12.04 64...

Ubuntu12.04 64bit 下载android4.3源代码

参考地址:http://source.android.com/source/index.html 下载环境:vmplayer 虚拟机中安装Ubuntu12.04  (ubuntu安装在这不是重点...

Ubuntu12.04(64bit)上部署编译运行Openfire+Spark环境

Ubuntu12.04(64bit)上部署编译运行Openfire+Spark环境

Ubuntu12.04 64bit安装后要做的配置

最近把系统ha un chen 1、给浏览器安装Flash。

Ubuntu11.10 64Bit版上的Android 4.0 开发环境搭建

据说Android以后新版本只支持64bit版本开发,所以搭建一个64bit系统的Android开发环境为将来的Android4.0 及更高版本 开发打好基础。 一、准备工作 1.1 硬件 PC...

Ubuntu 12.04 64bit 无法安装ia32-libs 解决方法

错误信息: Html代码   junior@mediacenter:~$ sudo apt-get install ia32-libs   Reading package l...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Ubuntu12.04(64bit) 下编译安装 Android4.0及4.22系统
举报原因:
原因补充:

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