文档章节

Ubuntu12.04系统编译Android4.4源码

stillcook
 stillcook
发布于 2014/10/14 18:33
字数 531
阅读 6356
收藏 17
点赞 2
评论 4

系统环境

系统:Ubuntu12.04 64位系统。

源码:Android4.4源码。

选择Ubuntu12.04,是因为在14.04上没能折腾成功,在上面兼容32位程序的配置有点烦。12.04必须要用64位的,编译Android4.4时需要64位环境,同时要兼容32位程序,折腾。

步骤

  1. 配置jdk6

Android官方给的步骤是用OpenJdk,实测是不行的。网上找到https://jdk6.java.net/download.html 这个网址有需要的jdk,下载自解压安装包。自解压后在当前目录下生成一个jdk的目录,打开/etc/environment,增加自己的jdk bin目录到PATH里面。同时新增如下环境变量:

CLASSPATH=/path/to/your/local/jdk/dir/lib
JAVA_HOME=/path/to/your/local/jdk/dir

然后执行如下命令,设置系统的默认jdk:

$ sudo update-alternatives --install /usr/bin/java java /usr/local/java/jdk1.6.0_38/bin/java 300
$ sudo update-alternatives --install /usr/bin/javac javac /usr/local/java/jdk1.6.0_38/bin/javac 300
$ sudo update-alternatives --install /usr/bin/javaws javaws /usr/local/java/jdk1.6.0_38/bin/javaws 300
$ sudo update-alternatives --install /usr/bin/jar jar /usr/local/java/jdk1.6.0_38/bin/jar 300
$ sudo update-alternatives --install /usr/bin/javap javap /usr/local/java/jdk1.6.0_38/bin/javap 300
$ sudo update-alternatives --config java
  1. 安装软件包 能装的都要装上,以免编译失败,又要回过头重装,如下:

    $ sudo apt-get install build-essential make gcc g++ libc6-dev texinfo libncurses-dev git-core gnupg flex bison zip curl ncurses-dev libsdl-dev zlib1g-dev ia32-libs libxml2-utils lzma

  2. 编译源码 到源码目录下,如下:

    $ source build/envsetup.sh $ lunch 选择arm平台。

    $ make -jn n为CPU个数的两倍,主要是提高编译速度。

可能的错误

编译过程碰到如下错误:

 File "/usr/lib/python2.7/subprocess.py", line 679, in __init__
     errread, errwrite)
 File "/usr/lib/python2.7/subprocess.py", line 1259, in _execute_child
     raise child_exception
 OSError: [Errno 2] No such file or directory

一般情况是因为前面的javap没有配置所致。如果必须的软件包没有安装,也会有类似的提示,仔细向上翻看错误提示,找到真正的错误地方,安装对应的软件包即可。

参考

  1. Linux(ubuntu14.04)上编译Android4.4源码的环境搭建及编译全过程
  2. Android 4.4代码资源115网盘下载

© 著作权归作者所有

共有 人打赏支持
stillcook
粉丝 0
博文 8
码字总数 3186
作品 0
深圳
程序员
加载中

评论(4)

小猪11
小猪11

引用来自“谷_寒”的评论

不过不知道怎么在命令行里面下载!?
repo命令下载,但我下载过很多次,没成功,后来直接下载别人上传到网盘的源码的,可以参考:http://blog.csdn.net/duantihi/article/details/50262019
zhangkehu
zhangkehu
mei shen me niao yong,ben ren yi jing zai ubuntu 14.04_64_bit bian yi wan cheng
谷_寒
谷_寒
不过不知道怎么在命令行里面下载!?
fangood
fangood
gggg
skia方面的问题,如何让编译的动态库在多个sdk版本上都能运行?

@fjlikun 你好,想跟你请教个问题:我用android4.4的源码和skia源码编译的动态库,android.mk LOCALPATH := $(call my-dir) include $(CLEARVARS) LOCALMODULE:=Test MYLOCALLIB:=D:/360Dow......

楚休红
2014/05/28
867
1
迅为iTOP-4412开发板Android4.4开发板平台

Android4.4开发板平台 ARM学习开发板-软件资源: 最新的Android 4.0.3 /Android 4.4 Linux + Qt操作系统 Ubuntu12.04

topeet
2015/06/30
412
3
【分享】迅为iTOP4412-Android4.4 HDMI 移植文档

本文转自迅为电子:http://www.topeetboard.com 近期需要把Android4.4 KitKat 的HDMI 高清输出功能移植到iTOP-4412 开发平台,查阅了相关资料,经过一段时间的研究、调试,终于成功输出1080P...

topeet
2015/07/14
435
0
Ubuntu12.04下编译Android4.0.3源码错误

今天尝试了一下将新买的笔记本安装上Ubuntu12.04版本64位系统,当我将一切工作准备就绪时,上安卓官方网站根据官网提供的说明文档进行Android4.0.3版本源码的安装。。。 经历无数个小时以后。...

黄青
2013/09/06
413
2
[资料分享]迅为iTOP4412开发板-SDIO WiFi移植文档

本文转自迅为:http://www.topeetboard.com 概述 近期需要把WiFi无线网络功能移植到iTOP-4412 开发平台,查阅了相关资料,经过一段时间的研究、调试,终于成功的将WiFi功能移植到了开发板上面...

topeet
2015/07/28
199
0
请问怎么在有HTC官方内核的情况下编译能在真机上运行的ROM?

@肖默it 你好,想跟你请教个问题:请问怎么在有HTC官方内核的情况下编译能在真机上运行的ROM?我已经把HTC官方提供的4.0的内核代码和从谷歌官方下载的Android源码准备好了,系统是ubuntu12....

ShangZhanLin
2012/06/07
360
0
android源码编译,执行lunch时报错

android4.4源码编译 source build/envsetup.sh lunch 不管选择几,都不出现同样的错误,build/core/envsetup.mk:81: *** Unable to determine HOST_ARCH from uname -sm: Linux i686!。 停止......

leif2006
2014/11/02
1K
2
Linux下安装Git

Linux下安装Git Ubuntu12.04中默认没有安装Git。需要自行安装。 1. 安装Git 1.1 Ubuntu12.04下 可以使用apt-get方式安装,也可以下载源代码安装【1】,我们这里使用apt-git安装。 但由于直接...

Bob_Zheng
2015/12/15
59
0
Ubuntu12.04下源码安装MySQL5.5.35

最近感觉自己的笔记本越来越慢,其实我每天只拿笔记本写代码也懒得去整理,有时候给同事演示一个功能或者什么的,点一下鼠标两三分钟才有反应,为此经常受到同事的嘲讽。。。。索性就换成Lin...

hosealee
2013/12/21
0
0
XEN4.3 源码修改后再次编译安装还是原来的Make Xen&Make install吗

大家好。 本人使用的是Ubuntu12.04 64位系统。现下载了XEN4.3的源码,并通过Make dist&Make install安装好了。但是本人想修改XEN Source Code中的部分内容(比如在Domain0中的后端驱动网络部分...

lostlost234
2013/10/28
485
1

没有更多内容

加载失败,请刷新页面

加载更多

下一页

自定义OkHttp的UA

背景 上次的问题很明显 由于我们的ua清一色OkHttp导致快速定位到内部应用。 既然如此我们是否考虑可以在UA上做点手脚。 自定义我们的UA呢??? 分析 首先UA在 均为okhttp/3.2.0 大概率是由于...

Mr_Qi
21分钟前
0
0
【scikit-learn】01:使用案例对sklearn库进行简单介绍

sklearn学习笔记:Quick Start 源地址:http://scikit-learn.org/stable/tutorial/basic/tutorial.html # -*-coding:utf-8-*-''' Author:kevinelstri Datetime:2017.2.16'''......

wangxuwei
25分钟前
0
0
Linux Kernel 4.16 系列停止维护,用户应升级至 4.17

知名 Linux 内核维护人员兼开发人员 Greg Kroah-Hartman 近日在发布 4.16.18 版本的同时,宣布这是 4.16 系列的最后一个维护版本,强烈建议用户立即升级至 4.17 系列。 Linux 4.16 于 2018 年...

问题终结者
27分钟前
0
0
Apache配置时.htaccess失效不起作用的原因分析

.htaccess 失效的原因 1. 重写规则有问题,检查自己的重写规则 2.Apache配置问题,配置中没有配置启用 rewrite a2enmod rewrite 3.网站配置文件没有启用配置需要配置 000-default.conf <Dire...

TU-DESGIN
47分钟前
1
0
两个求最大公约数C/C++算法实现

#include<stdio.h> #include<time.h> #include <iostream>using namespace std;//求最大公约数 LCD(Largest Common Division)//短除法 //m=8251, n=6105; int LCD_ShortDiv(int m, ......

失落的艺术
53分钟前
1
0
QueryPerformanceCounter

windows的Sleep函数,睡眠线程指定毫秒数,可以用来做毫秒延时。 对于微秒延时,没有一个现成的函数,但是可以通过 QueryPerformanceFrequency QueryPerformanceCounter 来间接实现。原理就是...

开飞色
今天
1
0
log4j2使用AsyncRoot不显示行号问题处理

<AsyncRoot level="info" includeLocation="true"> <AppenderRef ref="File"/></AsyncRoot><!--1.异步logger,还需要在pom.xml中添加disruptor的依赖。2.includeLocation结合异......

小翔
今天
3
0
安卓手机上 K 歌,声音延迟怎么解决?

这篇文章可以为你提供一个解决录音和播放同步问题的思路,而且解决了声音从手机传输到耳机上有延时的问题。 初识音频 在开始之前,我先简单介绍一下音频相关的基础知识,方便下文理解。 我们...

编辑部的故事
今天
2
0
使用token实现在有效期内APP自动登录功能

使用token实现在有效期内APP自动登录功能 http://sevennight.cc/2016/07/19/auto_login_impl.html

风云海滩
今天
2
0
Spring Boot集成RabbitMQ发送接收JSON

默认情况下RabbitMQ发送的消息是转换为字节码,这里介绍一下如何发送JSON数据。 ObjectMapper 最简单发送JSON数据的方式是把对象使用ObjectMapper等JSON工具类把对象转换为JSON格式,然后发送...

小致dad
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部