admin 管理员组文章数量: 1087829
2024年4月29日发(作者:fedora14 iso下载)
Android4.1.4编译
1、下载源码:
我是在ics版本的基础上 通过repo sync更新,发现有了android 4_1_r1的分支,
等待更新完,repo branch 切换分支,然后. Build/ 然后lunch 1 选择
full-eng 最后make ,过一会报错。提示:
build/core/product_:193:
_TS.[[build/target/product/vbox_]]:
***
"frameworks/native/build/" 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 /platform/manifest -b
android-4.1.1_r4
repo sync
下载3个小时,终于下载完成,本来下载源码需要很长时间5~10个小时,由于 再
ics的基础上下载,只需要把patch下载就行了(repo会自动完成)。兴奋啊,赶紧.
Build/
lunch 1 full-eng
警告:
/bin/bash:
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androidea
bi-gcc: 无法执行二进制文件
/bin/bash:
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androidea
bi-gcc: 无法执行二进制文件
/bin/bash:
prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.6/bin/arm-linux-androidea
bi-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 amd代表64位名称,
并非只使用amd处理器。把它放在F盘,并解压出其中Casper下的vmlinuz和
放到ISO同盘根目录
下载grub4dos 解压出和把它门都放在C盘
配置windows启动项,发现win7的c盘下找不到 原来win7启动配置跟
xp不一样,搜了下找到一下方法:
开始菜单->运行->输入CMD,命令提示符下如下操作:
bcdedit /create /d "GRUB4DOS" /application bootsector
命令结果应该会返回一个GUID,后面的命令用到这个GUID
bcdedit /set {GUID} device partition=C:
bcdedit /set {GUID} path
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=/ local=zh_-8
initrd (hd0,x)/
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
分钟郁闷的又报错了,提示:
error while loading shared libraries: .1: cannot open shared object file:
No such file or directory
找了好半天都没找到解决方案,明明看见了 systemroot/usr/lib/.1而且是个
链接,编译器非说找不到。重新编译了下toolchain也无法解决。终于看到相关信息,说
是64位库用32位的链接,aapt编译不过。查了相关资料快绝望时,找到一篇帖子,说
是少64位ubuntu要装一个库,赶紧 sudo apt-get install ia32-libs
终于搞定了,开始编译sdk,.
. build/
lunch sdk-eng
make -j8
终于可以了,整个过程可谓艰难!
用了6个小时终于编译完成了,最后make sdk生成 了sdk,从out/host中拷出
来,配置了adb 路径,终于ok了。
版权声明:本文标题:android4.1编译 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1714342717a676310.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论