Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2703850
  • 博文数量: 505
  • 博客积分: 1552
  • 博客等级: 上尉
  • 技术积分: 2514
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-23 18:24
文章分类

全部博文(505)

文章存档

2019年(12)

2018年(15)

2017年(1)

2016年(17)

2015年(14)

2014年(93)

2013年(233)

2012年(108)

2011年(1)

2009年(11)

分类: LINUX

2012-12-01 14:46:38

下了Android系统源码很久一直没时间编译,搞了一个下午,果然很麻烦。

一,下载源码

看官方教程吧。我之前也分享过一份源码。真的要下很久。

二,编译

官方教程。


主要说下我遇到的问题

首先是环境,我的是i52430 4G内存,LinuxMin 12 64位(其实就是 Ubuntu11.10)。Android2.3以上官方建议在64位的Linux上编译,当然32位上有解决的方法。另外JDK版本需要为1.6


下面是别人总结的,刚好我都遇到了==总结下

1.出现多次权限不够
/bin/bash:prebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc:
权限不够
/bin/bash:/usr/meizu/Android/out/host/linux-x86/bin/bison:
权限不够
/bin/bash:build/core/find-jdk-tools-jar.sh:
权限不够
解决:
增加权限便可。
Chmoda+xprebuilt/linux-x86/toolchain/arm-eabi-4.4.3/bin/arm-eabi-gcc
chmoda+x /usr/meizu/Android/out/host/linux-x86/bin/bison

2bison flex …..找不到命令.
/bin/bash:bison
:找不到命令

bits/predefs.h:No such file or directory

一堆找不到命令,或者什么没有该目录,bits/predefs.h:No such file or directory 这个错误有人说是g++gcc版本过高,要从4.6降到4.4,可是我将完还是不行,搜索了半天才发现,其实就是有些依赖没解决,我找到的依赖项有下面这些:

bison

flex g++-multilib gcc-multilib gperf ia32-libs-dev lib32ncurses5-dev lib32z1-dev libc6-dev-i386 libx11-dev mesa-common-dev 直接用apt-get install 全部装上...

3.pkg被中断,您必须手工运行sudodpkg –configure -a  执行sudodpkg –configure -a  解决此问题

4arm-eabi-gcc:error trying to exec 'cc1': execvp: No such file ordirectory”这样的错误
chmod-R 777 *


还有其它很多问题Android目前这么热门,基本上你遇到的问题别人已经遇到过了,所以基本上遇到问题晚上搜索下应该几给找到答案了。。关于搜索,建议用google或者直接用英文搜索,上面那个问题搜索“bits/predefs.h:没有该目录或文件”,就几个网页,但是搜索“bits/predefs.h:No such file or directory

就可以看到一堆答案了。看来还是国外比较活跃啊==

三,安装使用编译好系统

推荐杨丰盛老师的《Android技术内幕》系统卷。第一章准备工作这部分讲得很清楚。

所有的编译工作应该包含下面几部分

1编译Android系统就是我们刚刚做的。

2编译Linux内核,直接make是不会编译Linux内核的

3编译SDK就是我们开发应用时从谷歌官网下载的那个个差不多,包含了很多开发应用的工具。

4编译ADT也就是Eclipse的开发插件。

5单独编译Adnroid系统中的模块。

具体编译过程请参见上面推荐的那本书,其过程也是非常蛋疼的。

简单说下怎样使用我们自己编译的系统。

执行完13即编译完Android系统和SDK后,所有生成的东西会在源码跟目录下的out目录

out/target/product/generic/下就是系统的镜像 有system.imgramdisk.img userdata.img sdcard.img等重要的文件。

进入out/host/linux-x86/sdk/android-sdk_eng.water_linux-x86目录(注意这里的文件名是自动生成的,android-sdk_eng.你的主机名)/tools目录下

执行以下命令

./mksdcard512M sdcard.img建立内存卡

./androidcreate avd –target 1 –name HelloAndroid –sdcard sdcard.img建立虚拟主机

--target指定target–name指定名字 –sdcard指定sd卡文件

./emulator -system /home/water/mydroid/out/target/product/gene

ric/system.img -data /home/water/mydroid/out/target/product/generic/userdata.img -ramdisk /home/water/mydroid/out/target/product/generic/ramdisk.img


指定编译好的system.imgramdisk.img的文件。

转自:http://blog.csdn.net/waterstarsx/article/details/7240501

阅读(1729) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~