ubuntu 上android 源码编译 全过程(一)

1.安装ubuntu系统

2.安装jdk环境

3.配置编译环境

4.解决编译过程中遇到的问题

5.编译成功

问题解决总结:

资源版本

开始用的ubuntu 14.10 遇到一个大问题搞了两天没弄好,建议不要选择14.10

问题是 build/core/prebuilt.mk:143:*** recipe commences before first target.停止 遇到这个问题的绕道吧(个人建议)

现在的环境情况:

ubuntu12.04 、jdk1.6.33、源码4.0.3

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

安装Ubuntu系统:

要求:

1.最好是64位的操作系统。至于windows支持不支持直接boot设置,重启f1 vm。。。切换enabled 保存,然后新建虚拟机选择ubuntu64位一定要

3.版本最好是12.04 因为12.04 我还可以提供更新源基本可以解决好多问题

1、首先备份Ubuntu12.04源列表

sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup (备份下当前的源列表)

2、修改更新源

sudo gedit /etc/apt/sources.list (打开Ubuntu 12.04源列表文件)

3、把里面的列表替换成下面的列表

163源

deb http://mirrors.163.com/ubuntu/ precise main restricted
deb-src http://mirrors.163.com/ubuntu/ precise main restricted
deb http://mirrors.163.com/ubuntu/ precise-updates main restricted
deb-src http://mirrors.163.com/ubuntu/ precise-updates main restricted
deb http://mirrors.163.com/ubuntu/ precise universe
deb-src http://mirrors.163.com/ubuntu/ precise universe
deb http://mirrors.163.com/ubuntu/ precise-updates universe
deb-src http://mirrors.163.com/ubuntu/ precise-updates universe
deb http://mirrors.163.com/ubuntu/ precise multiverse
deb-src http://mirrors.163.com/ubuntu/ precise multiverse
deb http://mirrors.163.com/ubuntu/ precise-updates multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-updates multiverse
deb http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://mirrors.163.com/ubuntu/ precise-security main restricted
deb-src http://mirrors.163.com/ubuntu/ precise-security main restricted
deb http://mirrors.163.com/ubuntu/ precise-security universe
deb-src http://mirrors.163.com/ubuntu/ precise-security universe
deb http://mirrors.163.com/ubuntu/ precise-security multiverse
deb-src http://mirrors.163.com/ubuntu/ precise-security multiverse
deb http://extras.ubuntu.com/ubuntu precise main
deb-src http://extras.ubuntu.com/ubuntu precise main

sohu源

deb http://mirrors.sohu.com/ubuntu/ precise main restricted
deb-src http://mirrors.sohu.com/ubuntu/ precise main restricted
deb http://mirrors.sohu.com/ubuntu/ precise-updates main restricted
deb-src http://mirrors.sohu.com/ubuntu/ precise-updates main restricted
deb http://mirrors.sohu.com/ubuntu/ precise universe
deb-src http://mirrors.sohu.com/ubuntu/ precise universe
deb http://mirrors.sohu.com/ubuntu/ precise-updates universe
deb-src http://mirrors.sohu.com/ubuntu/ precise-updates universe
deb http://mirrors.sohu.com/ubuntu/ precise multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-updates multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-updates multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://mirrors.sohu.com/ubuntu/ precise-security main restricted
deb-src http://mirrors.sohu.com/ubuntu/ precise-security main restricted
deb http://mirrors.sohu.com/ubuntu/ precise-security universe
deb-src http://mirrors.sohu.com/ubuntu/ precise-security universe
deb http://mirrors.sohu.com/ubuntu/ precise-security multiverse
deb-src http://mirrors.sohu.com/ubuntu/ precise-security multiverse
deb http://extras.ubuntu.com/ubuntu precise main
deb-src http://extras.ubuntu.com/ubuntu precise main

ubuntu.cn99.com源(推荐):

deb http://ubuntu.cn99.com/ubuntu/ precise main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-updates main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-security main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu/ precise-backports main restricted universe multiverse
deb http://ubuntu.cn99.com/ubuntu-cn/ precise main restricted universe multiverse

教育网源

如果你是在校大学生,可以使用校园网/教育网,就是用教育网的资源吧,尤其是支持ipv6的,那更新速度就按兆算了。

#电子科技大学

deb http://ubuntu.uestc.edu.cn/ubuntu/ precise main restricted universe multiverse
deb http://ubuntu.uestc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
deb http://ubuntu.uestc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
deb http://ubuntu.uestc.edu.cn/ubuntu/ precise-security main restricted universe multiverse
deb http://ubuntu.uestc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise-security main restricted universe multiverse
deb-src http://ubuntu.uestc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse

#中国科技大学

deb http://debian.ustc.edu.cn/ubuntu/ precise main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ precise-backports restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ precise-security main restricted universe multiverse
deb http://debian.ustc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse
deb-src http://debian.ustc.edu.cn/ubuntu/ precise main restricted universe multiverse
deb-src http://debian.ustc.edu.cn/ubuntu/ precise-backports main restricted universe multiverse
deb-src http://debian.ustc.edu.cn/ubuntu/ precise-proposed main restricted universe multiverse
deb-src http://debian.ustc.edu.cn/ubuntu/ precise-security main restricted universe multiverse
deb-src http://debian.ustc.edu.cn/ubuntu/ precise-updates main restricted universe multiverse

#北京理工大学

deb http://mirror.bjtu.edu.cn/ubuntu/ precise main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ precise-backports main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ precise-proposed main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ precise-security main multiverse restricted universe
deb http://mirror.bjtu.edu.cn/ubuntu/ precise-updates main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise-backports main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise-proposed main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise-security main multiverse restricted universe
deb-src http://mirror.bjtu.edu.cn/ubuntu/ precise-updates main multiverse restricted universe

4、更新源

sudo apt-get update

这时候基本ubuntu安装环境搭好了。接下来就是jdk 和源码编译了

我选择的手动下载jdk1.6.0_33,要的到我资源里下载,稍后上传。

1、为jdk-6u33-linux-i586.bin增加执行权限

chmod u+x /usr/lib/jvm/java/jdk-6u33-linux-i586.bin

2、执行jdk-6u33-linux-i586.bin,将JDK6的相关文件解包至jdk1.6.0_33目录下

./jdk-6u33-linux-i586.bin

3、将jdk1.6.0_33复制到/usr/lib下

mkdir -p /usr/lib/jvm/

cp -r jdk1.6.0_33 /usr/lib/jvm/jdk1.6.0_33

4、安装JDK6

JDK6的bin文件中有许多可执行命令,根据需要,可以选择安装至/usr/bin目录下,比如,我安装了java/javac/javaws/jar四个命令。具体执行如下命令:

update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.6.0_33/bin/javac 1

update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.6.0_33/bin/java 1

update-alternatives --install /usr/bin/javaws javaws /usr/lib/jvm/jdk1.6.0_33/bin/javaws 1

update-alternatives --install /usr/bin/jar jar /usr/lib/jvm/jdk1.6.0_33/bin/jar 1

update-alternatives --config javac

update-alternatives --config java

update-alternatives --config javaws

update-alternatives --config jar

注意:如果需要安装其它命令,按照上面的格式,根据需要进行添加即可。

5、测试

?执行java -version可以看到当前JDK的版本信息,表示安装成功。显示如下:

[email protected]:~/JDK# java -version

java version "1.6.0_33"

Java(TM) SE Runtime Environment (build 1.6.0_33-b04)

Java HotSpot(TM) Server VM (build 20.8-b03, mixed mode)

其实到这没有结束因为ubuntu自带的openjdk与jdk1.6冲突的,解决下后面会少很多错误的

比如把我到jdk1.6安装到/usr/java下

1.下载jdk 我下载到是jdk-6u23-linux-i586.bin

2.把jdk-6u23-linux-i586.bin拷贝到/usr/java目录下

3.cd /usr/java

4.chmod +x jdk-6u23-linux-i586.bin

5. ./jdk-6u23-linux-i586.bin

6. 配置环境变量

所有用户:

gedit /etc/profile

在末尾处加入:

export JAVA_HOME=/usr/java/jdk1.6.0_23

export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=$JAVA_HOME/bin:$PATH:$HOME/bin

7.由于ubuntu中可能会有默认的jdk,如openjdk,所以,为了使默认使用的是我们安装的jdk,还要进行如下工作

update-alternatives --install /usr/bin/java java /usr/java/jdk1.6.0_23/bin/java 300

update-alternatives --install /usr/bin/javac javac /usr/java/jdk1.6.0_23/bin/javac 300

8. java -version

到这里jdk才算完全安装完毕,有别的问题可以继续道网上搜

时间: 2024-10-28 04:09:13

ubuntu 上android 源码编译 全过程(一)的相关文章

基于海思Hi3716cv200的Android源码编译及烧写

1.先说说硬件配置,我最开始是在Win7(I7 4770,8G RAM,2T硬盘)里装ubuntu10.10 64位系统(4G RAM,200G 硬盘)进行源码编译,大概花了3个多小时.而且还多次出现outofmemoryerror 错误.最后将硬件升级为I7 4770.16G内存.2T硬盘,不装虚拟机,直接跑Ubuntu 10.10系统,Swap分区为16G,编译一次大概花了40分钟,没有报任何错误. 所以不推荐在虚拟机里面跑. 2.根据官方文档配置编译环境: 官方文档说的是在"发布包/Sof

Android源码编译之Nexus5真机编译

1.   前言 在Android安全的研究工作中,我们时常要对Android进行改进并对其进行源码编译,由于目前几乎所有的手机厂商均对其底层驱动实行封闭政策,导致我们在完成Android编译后无法将我们编译好的系统刷到普通的Android手机上,因此在一般的科学实验中我们更多的是将修改好的android源码编译成模拟器,以模拟器的形式证明实验的成功与否. 事实上,Android作为一款开放源代码的移动设备操作系统,Google最初就考虑到了真机编译的问题,而关于这个问题的解决方案体现在每次Goo

Docker环境下编译android源码|编译可运行xposed

前言 因为我的电脑是Ubuntu18的版本,成功编译xposed刷入手机之后无法启动,检查了所有的环境,没有问题,发现可能是Ubuntu系统的兼容库的问题,但是我不可能重新安装系统吧,毕竟有点蠢,所以最好的方式就是在docker的Ubuntu容器中编译,统一环境问题,也可以隔离环境平时 工作开发环境,下面开始操作 安装配置docker docker加速,采用对国人友好的镜像地址 通过修改daemon配置文件/etc/docker/daemon.json来使用加速器,执行以下命令: 您可以配置 D

基于海思Hi3716cv200的Android源码编译及烧写之内置存储卡

问题:把编译好的镜像烧写到小板上后,发现设置--->存储 里只显示0.98G的系统空间,而且在设置--->应用 点开后会崩溃.崩溃时的日志信息如下: time( 3407): at com.android.settings.applications.ManageApplications$TabInfo.updateStorageUsage(ManageApplications.java:333) E/AndroidRuntime( 3407): at com.android.settings.

android 源码编译及其运行模拟器相关问题记录

最近一直在看android源码相关的文档,包括编译源码,还有framework层的代码,本人很懒,一直没有写博客,今天想自己在编译一下源码,并且运行在模拟器中. 源码的版本不同,需要的jdk可能也有所不同,一切都参照官方给与的文档,下载源码的方法也参考官方文档. 注意点:1.环境变量要设置正确,不要出现错误 2.基本没有一次就能顺利编译源码的,多少都会出错,根据提示修改错误,安装一些包和库就可以搞定,具体问题具体查找,我遇到的问题也可多了,都是按官方文档解决的.有些问题可能和你的编译环境相关,这

基于Hi3716cV200的Android源码编译问题---fastboot-burn.bin

在编译源码时有时会报与"fastboot-burn.bin"有关的错误. 解决办法如下: 进入device/hisilicon/bigfish/sdk目录,一次执行 make hiboot_clean; make hiboot_install. 如果在这个过程中报弄cfg.mak文件的错误,解决办法之一是在Android源码根目录进行一次完整编译,直到出错停止,此时会生成cfg.mak文件:解决方法之二是从sdk/configs拷贝单板配置文件到sdk目录并改名为cfg.mak. ==

有关android源码编译的几个问题

项目用到编译环境,与源码有些差异不能照搬,关键是连源码都没编译过,下面基本上是行网上照的各种自学成才的分享,病急乱投医了,都记在下面作为参照吧. 1.验证是否编译正确,在终端执行 emulator & (注:可进入${ANDROID_PRODUCT_OUT}目录,后执行 emulator -image system.img -data userdata.img -ramdisk ramdisk.img) 模拟器能正常启动则表明编译成功 Android源码编译调试详解  Android2.2的,有

Android源码编译jar包BUILD_JAVA_LIBRARY 与BUILD_STATIC_JAVA_LIBRARY的区别(二)

上文简单介绍了BUILD_JAVA_LIBRARY 与BUILD_STATIC_JAVA_LIBRARY编译出来jar包的区别, 那么你如果拿到了一个内容是dex格式的jar包,而你又偏偏需要这个jar包导入Eclipse来做开发, 手头偏偏又没有这个jar包的源码,或者有源码,但是没有Android源码编译(mm)的环境,怎么办? 这个时候谷歌安卓反编译工具(dex2jar, 本人实在太懒,就不提供下载链接了)就有用处了, 将jar包里面的dex文件(classes.dex)用此神器转换成一个

在CentOS6上使用源码编译LAMP平台

最近在学习重要的Web服务,当然也就少不了很重要的httpd和php.而动态网站必定又会使用数据库如mysql之类的,那么,今天就总结一下最近做的LAMP平台编译实验.具体过程如下. 实验名:在CentOS6上使用源码编译LAMP平台 实验环境:CentOS6.5,安装时选择了使用最多的两个开发包组. 使用系统默认基本yum源+epel6源(aliyun: http://mirrors.aliyun.com/repo/epel-6.repo) 使用源码包:httpd-2.4.9 ;二进制安装包m