一. 概述
编译安卓源码遇到很多坑,这里记录一下,网上大多都是零零散散,大神请绕过此博客~~
二、使用环境
1.Vmare ubentu 14.10 至于怎么在虚拟机配置,请百度,很简单的
2.Android 源码,这边我没有用repo sync,因为网络经常断,所以直接从网上下(链接:http://pan.baidu.com/s/1c2JXlNq 密码:jqts)
三、操作步骤
1.安装Jdk,这边注意4.4的源码只能是Jdk 1.6,而且不能是OpenJdk,怎么配置网上有,这里不重复了
2.安装必须的编译环境, 整理了下,命令为
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev build-essential zip curl libncurses5-dev zlib1g-dev
3.进入安卓源码路径,直接make 就可以了,如果想要快点,可以配置缓存
这里并不是完全OK,请别急,看下面的问题,不一定都有,如果担心源码编译有问题,可以先执行下面的解决方案
四.遇到的问题
问题1. apt-get update
原因 线程被占用
解决 直接重启Ubentu,获取root权限后直接reboot
问题2. prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-g++: No such file or directory
原因 缺少g++ 编译
解决 终端输入apt-get install gcc-multilib
问题3. /work/android/Android4.1.2/prebuilts/gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/../lib/gcc/i686-linux/4.6.x-google/../../../../i686-linux/bin/as: error while loading shared libraries: libz.so.1: cannot open shared object file: No such file or directory.
原因 缺少 libz.so
解决 终端输入sudo apt-get install lib32z1
问题4. out/host/linux-x86/obj/EXECUTABLES/rsg-generator_intermediates/rsg-generator: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
原因 没有安装libstdc++.so相关的工具包
解决 终端输入apt-get install g++-4.4-multilib
问题5.target Generated: libbcc <= frameworks/compile/libbcc/tools/build/gen-build-stamp.py
原因 linux配置问题
解决 缺少git,输入apt-get install git
如上就可以编译成功了“ 有碰到问题,再留言