一.环境搭建
因为android的源码编译只支持linux和mac,所以无法在windows下编译.我的电脑也没有双系统,因此只有装一个虚拟机。我用的是VMware workstation 我放到了百度云https://pan.baidu.com/s/1jHSrB2A。下载好安装虚拟机时最好多分配点硬盘空间,尽量30G以上,运行内存也分配2G以上。配置好虚拟机以后就要下个系统,推荐是用ubuntu系统,这个直接百度搜一下就有了。
二、配置ubuntu系统环境
1.下载java jdk,因为我编译的android2.3.1的源码,所以只能下载 1.6的jdk。下载jdk和配置方法参考http://www.cnblogs.com/a2211009/p/4265225.html ,如果要下载1.6的将里面的7改成6就可以。
2.编译需要的依赖包下载,参考http://blog.csdn.net/banketree/article/details/9089827
三、下载android源码
我一开始想用官方的下载方法,奈何没有vpn一直连接不上,最后不得不从其他地方下载。
1.可以从github上下载http://www.it165.net/pro/html/201409/22577.html#viewSource但是下载下来的源码没有makfile文件无法编译。
2.从网盘下载我提供我的网盘下载链接,不过源码是2.3.1的,如果需要新版的就得自己去找了。https://pan.baidu.com/s/1slxl0ML
四、开始编译
做了好准备工作就开始编译源码,编译源码说难也不难,说简单也不简单。其实编译的命令非常简单只要通过终端进入到你存放源码的目录 执行make命令就开始编译了。难就难在编译的过程中有很多的问题需要解决。下面我就列出 我编译时遇到的问题。

  1. //如果有权限呗拒绝就调用下面的语句修改权限
    在源码目录下 直接chmod -R 777 *
  2. make: * [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/AaptAssets.o] Error 1
    解决:
    vi frameworks/base/tools/aapt/Android.mk
    在第31行增加:
    LOCAL_CFLAGS += -Wno-format-y2k -fpermissive
  3. make: * [out/host/linux-x86/obj/STATIC_LIBRARIES/libutils_intermediates/AssetManager.o] Error 1
    解决:
    vi frameworks/base/libs/utils/Android.mk
    在第60行后面增加-fpermissive:
    LOCAL_CFLAGS += -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) -fpermissive
  4. make: * [out/target/common/obj/all-event-log-tags.txt] Error 126
    修改这个权限就好了build/tools/merge-event-log-tags.py
  5. make: * [out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/src/core/java/android/content/EventLogTags.java] Error 126
    修改这个权限就好了build/tools/java-event-log-tags.py: Permission denied
  6. make: * [out/host/linux-x86/obj/EXECUTABLES/grxmlcompile_intermediates/grxmlcompile.o] 错误 1
    或者 make: * [out/host/linux-x86/obj/EXECUTABLES/grxmlcompile_intermediates/grxmlcompile.o] Error 1
    解决办法:cd external/srec
    复制拷贝下面的命令到终端:
    wget “https://github.com/CyanogenMod/android_external_srec/commit/4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff”
    patch -p1 < 4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff
    rm -f 4d7ae7b79eda47e489669fbbe1f91ec501d42fb2.diff
    cd ../..

  7. make: * [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] 错误 1
    .make: * 正在等待未完成的任务….
    .true
    root@mc-virtual-machine:~/android/bin/android_source#
    解决方法:这就说明系统里有部分必须的软件未安装,通过apt-get install 安装即可。其中,zlib工具包名不是zlib,而是zlib1g-dev,即:
    sudo apt-get install zlib1g-dev
    可以完成安装。

  8. make: * [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] 错误 1
    make: * 正在等待未完成的任务….
    true
    root@mc-virtual-machine:~/android/bin/android_source
    解决方法:安装libncurses5-dev:i386则可以搞定~~ 如下:

apt-get install libncurses5-dev:i386

  1. make: * [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] 错误 127
    127的一般都是缺少库 这里下载 sudo apt-get install build-essential
  2. [out/host/linux-x86/obj/STATIC_LIBRARIES/libext4_utils_intermediates/output_file.o] Error 1
    /usr/include/zlib.h:34: fatal error: zconf.h: No such file or directory
    compilation terminated.
    make: * [out/host/linux-x86/obj/STATIC_LIBRARIES/libext4_utils_intermediates/output_file.o] Error 1
    make: * Waiting for unfinished jobs….
    由于系统的文件换了位置, 此时需要将 /usr/include/x86_64-linux-gnu/zconf.h 拷贝到上级目录,此时编译才通过
    将 zconf.h 拷贝到 /usr/include/ 目录即可
    cp /usr/include/x86_64-linux-gnu/zconf.h /usr/include/
  3. make: * [out/host/linux-x86/obj/EXECUTABLES/obbtool_intermediates/Main.o] Error 1
    此处编译错误是由于ubuntu 11.10采用了GCC4.6.1导致的。
    解决方法:
    修改源码目录下/build/core/combo/HOST_linux-x86.mk文件:
    将以下语句
    HOST_GLOBAL_CFLAGS += -D_FORTIFY_SOURCE=0
    修改为
    [html] view plain copy

  4. HOST_GLOBAL_CFLAGS += -U_FORTIFY_SOURCE -D_FORTIFY_SOURCE=0

  5. make: * [out/target/product/generic/obj/EXECUTABLES/BufferQueue_test_intermediates/BufferQueue_test.o] Error 1
    解决:
    其实是读取错文件了,你把正确文件拷贝过去就ok了
    cp system/media/opensles/libopensles/OpenSLESUT.h system/media/opensles/include/SLES/OpenSLESUT.h
    上面就是我在编译过程中遇到的问题,从开始编译靠结束用差不多5个小时,如果有遇到上面没有的问题直接不google找,尽量别去百度,浪费时间又找不到,google一搜一个准。
    五、启动模拟器
    到这一步就很简单了,首先配置一下环境 USER-NAME@MACHINE-NAME:~/Android exportPATH= export PATH=PATH:~/Android/out/host/linux-x86/bin
    USER-NAME@MACHINE-NAME:~/Android export

android源码下载,编译及编译时遇到的错误整理相关推荐

  1. Android源码下载(可编译)

    文章目录 1 源码下载 2 源码编译.导入Studio 3 遇到的问题 1 mac 默认是不区分大小写的,所以需要分区去下载源码. 2 解决 repo sync error: Exited sync ...

  2. VLC for Android源码下载和编译

    Project Hosting on 点击打开链接 最受欢迎的开源项目 点击打开链接 由Android的核心开发团队提供了15个优秀的示例项 目,包含了游戏.图像处理.时间显示.开始菜单快捷方式等. ...

  3. 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译

    本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:http://item.jd.com/12212640.html 试读地址:http:/ ...

  4. 《深入理解Android内核设计思想(第2版)(上下册)》之Android源码下载及编译...

    本文摘自人民邮电出版社异步社区<深入理解Android内核设计思想(第2版)(上下册)> 购书地址:item.jd.com/12212640.ht- 试读地址:www.epubit.com ...

  5. android源码下载以及编译自己的ROM

    android源码下载以及编译自己的ROM 最近发现kernel.org被墙了,为什么这种网站也能被墙了? 要想下载源码的话,只能绕过去了.下面是我从网上搜索到的一些下载方法: =========== ...

  6. mac 系统下android源码下载以及使用(总结)

    曾经买了本android系统内核分析的书,看了一段看不懂,工作也忙,差不多两年过去了,感觉android水平需要提高一下,就装备把书看看,但是在网上找了一些文章,参考了官方的下载方式,最后都没有很好的 ...

  7. 国内Android源码下载

    最近开始学习Android ROM制作,于是,照着<深入理解Android内核设计思想><Android深度探索(卷1):HAL与驱动开发>上介绍的内容,去下载Android源 ...

  8. android源码下载-- 菜鸟先飞

    百度或谷歌一下android源码下载,会出现一堆教程,大同小异,大部分都是这个被称为"权威"的翻译.这么多的教程,你是不是喜出望外呢?可是...你可以照做试试,成功的几率跟买彩票中 ...

  9. android源码下载方法 批量下载 基于windows os

    安装win版的Gitbash, 在这里 http://msysgit.googlecode.com/files/Git-1.6.0.2-preview20080923.exe. 选择默认安装路径(否则 ...

  10. I.MX6 android 源码下载

    /************************************************************************** I.MX6 android 源码下载* 说明:* ...

最新文章

  1. 上传代码到git上的分支(协同开发)
  2. 人与动物之间有没有一条不可逾越的鸿沟?——从基础存在论到生命哲学
  3. AlwaysOn 部分笔记及文档连接
  4. @data注解不生效_面试官:你经常在SpringBoot中使用的条件注解底层是如何实现的?你了解过吗?...
  5. 定制Sublime主题
  6. 微型计算机kong控制技术,AT89C2051单片机在步进电机控制中的应用
  7. 第三章 使用单元测试测试简单的首页
  8. 真正能成功的人,不见得是最聪明的,也小见得是学历最高的,而是最能面对问题、锲而不舍的人。...
  9. Bailian2941 Bailian3225 满足条件的整数【枚举+开方】
  10. 服务器 'server_1' 上的 MSDTC 不可用
  11. C++ memset()函数和bzero()函数
  12. 外贸软件如何提升出口流程管理效率
  13. opencv之图像二值化处理
  14. Weka下载安装详解
  15. AWS CloudFront / 亚马逊CDN使用教程
  16. 超线程cpu的寄存器_我对超线程我的理解
  17. python自动玩2048
  18. Blender 2.8 白色背景的处理方式
  19. 博客专家 - 2022贡献榜与TOP100光荣榜【转】
  20. MAC 打开CAJViewerMac软件时报错

热门文章

  1. 进制数制系统之间的转换
  2. java 数字转换流量_流量充值示例代码
  3. SurfaceView
  4. API自动化工具之案例解析
  5. Directsound 详解
  6. IDEA设置sout main快捷键变成syso,psvm
  7. 浅谈语音技术(ASR/TTS/质检/声纹)
  8. C++显示文字到桌面
  9. 【Webpack】1105- 深入学习 Webpack Loader 知识
  10. layui prompt 如何设置允许空白提交