from:http://blog.csdn.net/wanjun8659/article/details/8095664

历时一个星期,终于将android4.0源码编译成功,中间经历了各种曲折,非常之蛋疼,现在将编译方法共享一下:

Android源码编译步骤:

(基于ubuntu11.10和android4.0)

1.   安装JDK

2.   配置JDK环境变量

gedit /etc/environment

在打开的文件中,添加如下几行:

PATH=$PATH:$JAVA_HOME/bin($PATH为之前的PATH环境变量的内容)

CLASSPATH=".:$JAVA_HOME/bin"

JAVA_HOME="/usr/lib/jvm/java/jdk1.6.0_29"

接下来,需要安装java/javac/jar命令了,执行如下命令:

update-alternatives--install /usr/bin/java java /usr/lib/jvm/java/jdk1.6.0_29/bin/java 300

update-alternatives--install /usr/bin/javac javac /usr/lib/jvm/java/jdk1.6.0_29/bin/javac 300

update-alternatives--install /usr/bin/jar jar /usr/lib/jvm/java/jdk1.6.0_29/bin/jar 300

update-alternatives--config java

update-alternatives--config javac

update-alternatives--config jar

3.   将Android4.0源码拷贝至系统目录并解压缩(tar vxzf)

4.   安装需求包(注意安装顺序)

$ sudoapt-get install git-core gnupg flex bison gperf build-essential \

zip curlzlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs \

x11proto-core-devlibx11-dev lib32readline5-dev lib32z-dev \

libgl1-mesa-devg++-multilib mingw32 tofrodos python-markdown \

libxml2-utilsxsltproc

$ sudoapt-get install libx11-dev:i386

5.   设置编译环境

onejune@ubuntu:/share/android4.0$source build/envsetup.sh

onejune@ubuntu:/share/android4.0$lunch full-eng

6.   开始编译

Sudomake –j4

7.   启动所编译的系统

编译完之后会在out/target/product/generic目录下生成system.imgramdisk.img userdata.img三个镜像文件。

在启动模拟器之前,需要先为模拟器系统设置环境变量,

执行gedit ~/.bashrc,新增环境变量如下:

exportANDROID_PRODUCT_OUT=/share/android4.0/out/target/product/generic

ANDROID_PRODUCT_OUT_BIN=/share/android4.0/out/host/linux-x86/bin

exportPATH=${PATH}:${ANDROID_PRODUCT_OUT_BIN}:${ANDROID_PRODUCT_OUT};

8.   同步这些变化并启动模拟器:

$ source~/.bashrc

$ cd /share/android4.0/out/target/product/generic

$emulator -system system.img -data userdata.img -ramdisk ramdisk.img

Android编译错误处理:

错误代码

解决方法

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../../libncurses.so when searching for -lncurses

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.4.1/../../../libncurses.a when searching for -lncurses

/usr/bin/ld: skipping incompatible /usr/lib/libncurses.so when searching for -lncurses

/usr/bin/ld: skipping incompatible /usr/lib/libncurses.a when searching for -lncurses

/usr/bin/ld: cannot find -lncurses

collect2: ld returned 1 exit status

make: *** [out/host/linux-x86/obj/EXECUTABLES/adb_intermediates/adb] Error 1

apt-get install lib32ncurses5-dev

make: *** [out/host/linux-x86/obj/EXECUTABLES/aidl_intermediates/aidl]

Error 1 /usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.2.4/libstdc++.so when searching for -lstdc++

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.2.4/libstdc++.a when searching for -lstdc++

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.2.4/libstdc++.so when searching for -lstdc++

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.2.4/libstdc++.a when searching for -lstdc++

/usr/bin/ld: cannot find -lstdc++ collect2: ld returned 1 exit status

其找不到libstdc++

apt-get install g++-multilib

-o out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt -lz -lrt

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../libz.so when searching for -lz

/usr/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-linux-gnu/4.3.2/../../../libz.a when searching for -lz

/usr/bin/ld: skipping incompatible /usr/lib/libz.so when searching for -lz /usr/bin/ld: skipping incompatible

/usr/lib/libz.a when searching for -lz /usr/bin/ld: cannot find -lz collect2: ld returned 1 exit status

make: *** [out/host/linux-x86/obj/EXECUTABLES/aapt_intermediates/aapt] Error 1

其找不到libz

apt-get install lib32z1-dev

致命错误: zlib.h:没有那个文件或目录

执行  sudo apt-get install zlib1g-dev

致命错误: jpeglib.h:没有那个文件或目录

执行  sudo apt-get install libjpeg-dev

致命错误: png.h:没有那个文件或目录

执行  sudo apt-get install libpng

致命错误: curses.h:没有那个文件或目录

sudo apt-get  install libncurses5-dev

致命错误: ft2build.h:没有那个文件或目录

sudo apt-get install libxft2-dev

致命错误: GL/glx.h:没有那个文件或目录 和   致命错误: X11/extensions/shape.h:没有那个文件或目录

sudo apt-get install libgl1-mesa-dev

/usr/bin/ld: cannot find -lGL

先删掉/usr/lib/i386_linux-gnu/libGL.so,然后

sudo ln -s /usr/lib/i386_linux-gnu/mesa/libGL.so.1 /usr/lib/i386_linux-gnu/libGL.so

一定要确保/usr/lib/i386_linux-gnu/libGL.so的链接目标是i386_linux-gnu/mesa/libGL.so.1

/bin/bash: java: command not found

sudo ln -s  /usr/java/jdk1.6.0_35/bin/jar /bin/jar

sudo ln -s /usr/java/jdk1.6.0_35/bin/java /bin/java

sudo ln -s /usr/java/jdk1.6.0_35/bin/javac /bin/javac

sudo ln -s /usr/java/jdk1.6.0_35/bin/javah /bin/javah

sudo ln -s /usr/java/jdk1.6.0_35/bin/javadoc /bin/javadoc

Java: NFCDemo (out/target/common/obj/APPS/NFCDemo_intermediates/classes)

collect2: ld terminated with signal 9 [Killed]

将虚拟机内存调整为2G或者更多

NAND:could not open file system.img

Sudo chomod 777 system.img

转载于:https://blog.51cto.com/memory/1201514

Android4.0源码编译方法以及错误解决方案相关推荐

  1. Android 源码编译及常见错误及解决方法

    Android 源码编译及常见错误及解决方法 参考文章: (1)Android 源码编译及常见错误及解决方法 (2)https://www.cnblogs.com/kyyblabla/p/360393 ...

  2. android源码编译烧鸡,android4.0源码下载 编译 系统体验~图解

    近来着眼于ANDROID4.0的关注与研究,第一时间把ANDROID4.0源码下 下来了,只是时间问题,所以没能第一时间把过程记录下来,今天算是富裕点时间就给写下来,希望能给灼热于ANDROID继续平 ...

  3. ambari 2.5.0源码编译安装

    参考:https://www.ibm.com/developerworks/cn/opensource/os-cn-bigdata-ambari/index.html Ambari 是什么 Ambar ...

  4. Android源码编译make的错误处理

    https://www.linuxidc.com/Linux/2011-11/47411.htm Android源码下载:官方下载 或参考android源码下载方式 Android编译版本: PLAT ...

  5. linux系统编译时make出错,Android源码编译make的错误处理

    Android编译版本:PLATFORM_VERSION=4.0.1(最新Android 4.0.1) OS 操作系统平台: Linux yanggang 2.6.35-30-generic #61- ...

  6. cmake 编译curl源码_OpenCV4.0 源码编译

    之前写过几篇关于OpenCV的博客,都是基于openCV 3.14写的,10月份OpenCV发布了4.0的bate版本,我就切换到4.0版本上来.之后的博客都会是基于4.0版本的.本文主要介绍一下三个 ...

  7. Android4.0源码目录结构详解

    Android4.0源码目录结构详解 Android4.0与2.1目录差不多 alsa这块,注意external/tinyalsa下有: include/tinyalsa/asoundlib.h mi ...

  8. python 3.10.0源码编译安装

    python 3.10.0源码编译安装 文章目录 python 3.10.0源码编译安装 1. 安装编译依赖工具 2. 下载python 3.10.0 3. 编译安装 Python 4. 体验 1. ...

  9. postgresql 12.0 源码编译安装

    postgresql 12.0 源码编译安装 1.安装相关软件包 su - root yum install -y cmake gcc gcc-c++ perl readline readline-d ...

最新文章

  1. 使用telephonymanager真机调试 闪退_watchOS 上的一次 SKView 内存泄露调试
  2. php 加载redise_php环境篇:redis服务编译安装
  3. 递增子序列 Increasing Subsequences
  4. python怎么读取csv文件-Python读取csv文件(详解版,看了无师自通)
  5. 51nod 1067 Bash游戏 V2 博弈
  6. GJB 5000A与GJB 5000B区别
  7. 3dmax 计算机中丢失,3dmax材质丢失怎么快速找回-解决3dmax材质不见了的方法 - 河东软件园...
  8. 怎样用计算机做周计划表,电脑如何制作学生学习计划表
  9. ARM-QT5.14.2 触摸屏配置(电容屏/电阻屏)
  10. 软考倒计时19天:招投标法、合同法、采购法
  11. 粒子群算法基本原理与编程
  12. 关于路由器花生壳动态域名无法连接的解决方法
  13. CH Dream(侠客行)
  14. html多个子页显示在一个页面,html多个html页面嵌套在一起
  15. jQuery插件库链接
  16. Web渗透(九)LDAP注入
  17. 去除csdn博客上的图片水印
  18. request.args.get()用法
  19. Pytorch:基于转置卷积解码的卷积自编码网络
  20. 【mysql的设计与优化专题(5)】慢查询详解

热门文章

  1. 让“云”无处不在-Citrix Xenserver之六 高可用性: High Availability
  2. android中ViewPager详解--视图滑动、界面卡等效果 (三)
  3. 微软:推开窗户,我看到了云
  4. HDU-2082 找单词 母函数
  5. VCLZip 简单 Demo
  6. Updater Application Block for .net 2.0 发布了
  7. 《『若水新闻』客户端开发教程》——09.代码编写(1)
  8. android 插件化 androdpluginmgr 扩展开发问题
  9. NMath应用教程:如何通过代码访问底层数据和应用函数
  10. SDCMS 1.1sp1的XSS漏洞的挖掘与利用