Android4.1.4编译
1、下载源码:
我是在ics版本的基础上 通过repo sync更新,发现有了android 4_1_r1的分支,等待更新完,repo branch 切换分支,然后. Build/envsetup.she 然后lunch 1 选择full-eng 最后make ,过一会报错。提示:
build/core/product_config.mk:193: *** _nic.PRODUCTS.[[build/target/product/vbox_x86.mk]]: "frameworks/native/build/phone-xhdpi-1024-dalvik-heap.mk" does not exist. Stop.
** Don't have a product spec for: 'full'
** Do you have the right repo manifest?
Google baidu bing了大半天终于在android的bug单中到了这条bug,解答是源码不全。愁了半天,repo sync 都是最新的,愁了半天,最后再ics的repo中重新下了个android4.1.4的分支。
repo init -u lesource/platform/manifest -b android-4.1.1_r4
repo sync
下载3个小时,终于下载完成,本来下载源码需要很长时间5~10个小时,由于 再ics的基础上下载,只需要把patch下载就行了(repo会自动完成)。兴奋啊,赶紧.
Build/envsetup.sh
lunch 1 full-eng
警告:
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: 无法执行二进制文件
/bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: 无法执行二进制文件
/
bin/bash: prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androideabi-gcc: 无法执行二进制文件
先没管它,继续机制行
make clean
make -j8
过了几分钟提示错误:
host StaticLib: libhost (out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a)
ERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-glibc2.7-4.6/bin/x86_64-linux-ar only run on 64-bit linux
make: *** [out/host/linux-x86/obj/STATIC_LIBRARIES/libhost_intermediates/libhost.a] 错误 1
host C: emulator-target-i386 <= external/qemu/cpus.c
host C: emulator-target-i386 <= external/qemu/arch_init.c
host C: emulator-target-i386 <= external/qemu/os-posix.c
host C: emulator-target-i386 <= external/qemu/oslib-posix.c
host C: emulator64-arm <= external/qemu/audio/audio.c
host C: emulator64-arm <= external/qemu/disas.c
ERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-
glibc2.7-4.6/bin/x86_64-linux-gcc only run on 64-bit linux
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator64-
arm_intermediates/disas.o] Error 1
make: *** Waiting for
ERROR: prebuilts/tools/gcc-sdk/../../gcc/linux-x86/host/x86_64-linux-
glibc2.7-4.6/bin/x86_64-linux-gcc only run on 64-bit linux
make: *** [out/host/linux-x86/obj/EXECUTABLES/emulator64-
arm_intermediates/audio/audio.o] Error 1
又陷入郁闷,google baidu了好半天,都没到解决方案,不过到了提示,就是谷歌推荐使用64位的ubuntu 10.04 来编译,很多配置都是 基于64来的,所以 32位系统编译会遇到很多问题。
天啦,难道我要重装ubuntu? 软件,vim,java 编译环境都需要重新配置,工程浩大。了半天实在不到解决方案,只好去硬着头皮去下载了64位ubuntu,安装过程如下:
下载64位ubuntu ubuntu-10.10-desktop-amd64.iso amd代表64位名称,并非只使用amd处理器。把它放在F盘,并解压出其中Casper下的vmlinuz和 放到ISO同盘根目录
下载grub4dos 解压出menu.lst和把它门都放在C盘
配置windows启动项,发现win7的c盘下不到boot.ini 原来win7启动配置跟xp不一样,搜了下到一下方法:
开始菜单->运行->输入CMD,命令提示符下如下操作:
bcdedit /create /d "GRUB4DOS" /application bootsector
命令结果应该会返回一个GUID,后面的命令用到这个GUID
bcdedit /set {GUID} device partition=C:
bcdedit /set {GUID} path \grldr.mbr
bcdedit /displayorder {GUID} /addlast
等安装完成之后可以使用bcdedit /delete {GUID}将GRUB4DOS的启动项删除,GRUB4DOS启动项的GUID可使用bcdedit /v查看。
然后重启进入grub 然后选择 commandline进入命令行
依次root各个分区到放iso的盘例如x
root(hd0,x) x=0,1,2,。。。
ls 查看是否有iso 记下 x。
到iso后执行
kernel (hd0,x)/vmlinuz boot=casper iso-scan/filename=/ubuntu-10.10-desktop-amd64.iso local=zh_CN.UTF-8
initrd (hd0,x)/initrd.lzandroid最新版
boot
这样就启动了临时ubuntu,可以执行安装了,我选择在原来32位的ubuntu上覆盖,这样有些配置不会丢失,文件也不会丢失,除非是系统原生的。
花了半个小时终于搞定。
然后开始下载64位的jdk,发现有新版本,就下了个1.7 然后修改~/.bashrc安装装一些环境变量
JAVA_HOME=/soft/jdk1.7.0
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH
CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
#export PATH
export CLASSPATH
1. sudo apt-get install build-essential
2. sudo apt-get install make
3. sudo apt-get install gcc
4. sudo apt-get install g++
5. sudo apt-get install libc6-dev
6.
7. sudo apt-get install patch
8. sudo apt-get install texinfo
9. sudo apt-get install libncurses-dev
10.
11. sudo apt-get install git-core gnupg
12. sudo apt-get install flex bison gperf libsdl-dev libesd0-dev libwxgtk2.6-dev zip curl
13. sudo apt-get install ncurses-dev
14. sudo apt-get install zlib1g-dev
15. sudo apt-get install valgrind
16. sudo apt-get install python
顺便也下载了最新版本eclipse 64位版本
一切都就绪了,开始编译,编到几分钟报错: javac 1.7版本冲突,只好又去下载了 jdk1.6 的64位版本,重新配置了下 ~/.bashrc java路径。然后开始继续编译。过了10分钟郁闷的又报错了,提示:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论