Ubuntu12.04 编译android 源码 遇到的问题
2014-07-14 11:34
726 查看
Android 4.4源码编译以及遇到的小问题
/article/2057315.html倒腾了好多天,终于编出来了,看到模拟器正常运行,总算是出了一口气,这几天折腾的不轻了。
现在来说说下载以及编译中遇到的问题。
1,。下载
网上教程多的是,只不过。。。尼玛的我的虚拟机下了一晚上,只有几百M,然后断断续续的,学校每月3G的流量限制, 尼玛的下了一会会就把光光的流量用超了3G多,悲剧,没有办法,只好搜搜看有人下好了的源码,还好比较幸运,找到了115网盘,里边有人贡献出了源码:
/article/1446545.html
不过里边一个Android4.4源码,一个kernel源码,反正编译的时候直接用的Android,kernel里是啥玩意没看懂。
源码下好了,就需要下载jdk以及eclipse了,
eclipse推荐使用adt-bundle-linux-x86_64-20131030.zip这个东西,去官网上下,还有jdk,只能使用1.6的,我最开始装的是1,.7结果,编译的时候系统提示编译版本太高,然后。。。
2.配置
关于JDK的配置:
ln -s -f /root/Dev/jdk1.6.0.45/bin/jar
ln -s -f /root/Dev/jdk1.6.0.45/bin/javah
update-alternatives --install /usr/bin/javadoc javadoc /root/Dev/jdk1.6.0.45/bin/javadoc 300
update-alternatives --install /usr/bin/javadoc javac /root/Dev/jdk1.6.0.45/bin/javac 300
update-alternatives --install /usr/bin/javadoc javap /root/Dev/jdk1.6.0.45/bin/javap 300
配置完了然后使用java --version看好使不,如果没有问题就可以看是下一步了。
在正式的编译之前,建议先安装一些软件:
sudo apt-get install build-essential
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install g++
sudo apt-get install libc6-dev
sudo apt-get install patch
sudo apt-get install texinfo
sudo apt-get install libncurses-dev
sudo apt-get install git-core gnupg
sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev build-essential zip curl
sudo apt-get install ncurses-dev
sudo apt-get install zlib1g-dev
sudo apt-get install valgrind
sudo apt-get install python2.5
这些是我从别人的博客里看的,具体的安装我是在编译出错的时候复制错误信息,google了一下说缺少软件包,所以建议提前安装,有的话就不用管了,没有了就得提前安装,免得出一次错误就得重新make,太麻烦。
对了,大家如果使用虚拟机的话,特别提醒一下,一定要将虚拟机的大小开到100G,我最初了开了50个G,尼玛不够用,然后又用vm扩展了,还得在里边分区,最后不得不把源码的编译环境全部拷到新建的分区中去,不知道为啥我的VM无法识别U盘,没办法给第一分区扩展。,哎。。。
3.编译
这些东西都配完了,就可以正式编译了。具体的步骤请参考:http://jingyan.baidu.com/album/a501d80ce61ad0ec630f5e0b.html
很简短,但是试过了没有问题,一步一步照着来,我的宿主机是E3 1230 v3,所以在虚拟机里跑还算可以,不卡,最后编译的时候留在了晚上,睡一觉起来就搞定了,不过之前的配置以及编译倒是出了不少问题,如果有错误信息,建议copy出来然后google或者baidu,stackoverflow是个不错的解决错误的网站,很多错误都是从哪里看到的解决方法。
反正我遇到的问题都是缺少东西,或者配置有问题,我第一编译的时候出了段错误,也不知道啥情况,不过可能跟空间太小有关,开到150G的时候就没有看到了。
最终编译完成,生成的文件如下:
最后在模拟器中跑一下就可以了。。
祝大家好运!
64位Ubuntu编译android的环境配置问题
原文地址:/article/10485302.html
下载了Android的最新版本4.2.1,用以前的方式将-m64替换为-m32行不通了,正好笔记本上还有一块闲置硬盘,笔记本又是64位的。干脆就在闲置硬盘上装个64位的,下载完64位镜像后,用U盘制作了安装盘,不到半小时就装好了,按照以前的方式安装了开发编译环境,在编译官方的4.2.1代码时,很快出现如下错误:
PRODUCT_COPY_FILES frameworks/base/data/sounds/ringtones/ogg/Solarium.ogg:system/media/audio/ringtones/Solarium.ogg ignored.
host C: acp <= build/tools/acp/acp.c
prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc
prebuilts/tools/gcc-sdk/gcc: line 40: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc: No such file or directory
make: *** [out/host/linux-x86/obj/EXECUTABLES/acp_intermediates/acp.o] Error 127
在网上google一番,有遇到类似问题,但没有答案。自己分析 解决。看了下prebuilts/tools/gcc-sdk/gcc,里面的脚本提示 prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc出错,ls一下,这个文件是存在的,但为何提示没有呢?那我干脆执行一下,原来提示同样的错误:
bill@Ubuntu:~/android-4.2.1_r1$ prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc -v
bash: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc: No such file or directory
再用file和ldd一看,原来是32位的可执行程序,32位的不能在64位机器上执行的缘故:
bill@Ubuntu:~/android-4.2.1_r1$ file prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc
prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked (uses shared
libs), for GNU/Linux 2.6.8, stripped
bill@Ubuntu:~/android-4.2.1_r1$ ldd prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/i686-linux-glibc2.7-4.6/bin/i686-linux-gcc
not a dynamic executable
后在同事帮助下(其64位机器上上述32位的工具链可以正常运行),修改了prebuilts/tools/gcc-sdk/gcc,让其直接调用64位的工具链,但出现其它库头文件缺少的错误。对照http://source.android.com/source/initializing.html的官方指南,原来某些库没有安装,象32位程序在64位机器上运行必须有ia32-libs才行:
sudo apt-get install ia32-libs (http://maketecheasier.com/run-32-bit-apps-in-64-bit-linux/2009/08/10)
按照Google的官方指南,补齐缺少的库,Android4.2.1编译开始呼呼地build起来了并顺利build完成。
更多1
上一篇g++:
error trying to exec 'cc1plus': execvp: 没有那个文件或目录
下一篇
相关文章推荐
- ubuntu12.04 64bit 编译android源码时遇到的问题"make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates"
- ubuntu12.04 64bit 编译android源码时遇到的问题
- ubuntu9.04下编译android源码遇到的问题
- 编译android源码遇到的问题
- ubuntu配置android开发环境和编译源码遇到的一些问题
- Android 4.4源码编译以及遇到的小问题
- Android源码编译JNI遇到的问题与解决方法
- Ubuntu12.04编译Android4.0.1源码全过程-----附wubi安装ubuntu编译android源码硬盘空间不够的问题解决
- 编译android源码遇到的问题
- 编译android源码遇到的问题use BUILD_PREBUILT instead
- ubuntu配置android开发环境和编译源码遇到的一些问题
- ubuntu下编译Android源码过程遇到问题解决
- android2.2源码编译过程遇到的问题
- 编译android源码及遇到的问题
- ubuntu配置android开发环境和编译源码遇到的一些问题
- Android源码编译时遇到的问题:error:reference 'counts' cannot be declared 'mutable'
- android 源码编译遇到得一些问题
- Android源码编译时,遇到的问题:error: "_FORTIFY_SOURCE" redefined [-Werror]
- 编译Android源码过程中遇到的问题