您的位置:首页 > 移动开发 > Android开发

Ubuntu12.04 编译android 源码 遇到的问题

2014-07-14 11:34 627 查看


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: 没有那个文件或目录

下一篇
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: