编译手机源码配置-Ubuntu编译android源码并配置模拟器

首先,这篇博客是一年半前写的,发表在iteye上(地址:)。 因为觉得搬博客麻烦,所以就直接粘贴了。

首先编译2.3需要的是JDK6,最好不要使用openJDK。

1.安装JDK

网上通常的做法是:sudo apt-get install sun-java6-jdk,但这是错误的。 在官方网站上找不到JDK6。 官方源码只有Open JDK,Sun JDK没有了。 这是开源社区对Oracle的批评吗? 反对Sun的出价?

这里推荐一个博客,方法是正确的,我测试过,地址是:%CE%DE%C0%B5%BE%FD%D7%D32008/blog/item/b0dcba95e22fbc197af48026.html(我们用的是这些自动安装根据机器是32位还是64位,选择下载对应的JDK)。

2.安装所需的包

这里没有必要看官方文档,太长了。

记住我们是 ubuntu10.04,我们的是 32 位,所以只需: sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev libncurses5-dev x11proto-core-dev libx11 -dev libreadline6-dev libgl1-mesa-dev tofrodos python-markdown libxml2-utils xsltproc 这没关系哇。

3.下载源码

这是最关键的一步。

(1)、创建bin目录,与桌面同级

mkdir ~/bin

路径=~/bin:$路径

(2)、下载repo脚本,并确保其可执行(此步骤可能需要一段时间),并更改repo文件的权限

卷曲 > ~/bin/repo

编译手机源码配置-Ubuntu编译android源码并配置模拟器

chmod a+x ~/bin/repo

(3)、创建文件夹,存放android2.3的源码

这个不用说(记得在bin下面)

例如:mkdir android2.3

cd android2.3

(4)、使用repo下载

repo init -u -b android-2.3.3_r1 (注意下载的是2.3版本)

哈哈,这个时间就看你的网速了,可能是5G,那该死的公司网络连不上,只有对面公司的网络,而且他们白天不下班,所以白天下班不了那天,已经耽误了三天了,唉! ! ! !

4.编译源码

下面是编译我们的源码,请按照步骤操作

导出 Android_JAVA_HOME=$JAVA_HOME

进入存放源码的文件夹,如cd ~/Android2.3

源构建/envsetup.sh

午餐(默认选择,直接输入)

制作

你以为这样就可以了,你就错了

make的时候会提示错误:

****************************************************** ** **********

您正在尝试在 32 位系统上构建。

froyo/2.2 之外仅支持 64 位构建环境。

****************************************************** ** **********

因为Android 2.3默认是在64位系统上编译的,所以需要自动更改build/core/main.mk,注释掉这个判断部分:

#ifneq(64,$(查找字符串 64,$(build_arch)))

#$(警告 ************************************************** *****************)

#$(警告您正在尝试在 32 位系统上构建。)

#$(警告仅支持 froyo/2.2 之外的 64 位构建环境。)

编译手机源码配置-Ubuntu编译android源码并配置模拟器

#$(警告 ************************************************** *****************)

#$(错误停止)

#万一

重新make,如果安装的是JDK6版本,会再次报错:

文档 droiddoc:out/target/common/docs/api-stubs

无法加载“clearsilver-jni”

java.library.path = out/host/linux-x86/lib

make: *** [out/target/common/docs/api-stubs-timestamp] 错误 45

make: *** 等待未完成的工作......

无法加载“clearsilver-jni”

java.library.path = out/host/linux-x86/lib

make: *** [out/target/common/docs/doc-comment-check-timestamp] 错误 45

这是因为clearsilver如果在编译时衡量Java JDK 6则使用64位编译,因为Google员工更新了多个文件。 在这里您可以看到详细的更改日志:;a=commitdiff;h=d36910a8110d8377b22301274d2b5131a732a72b

要修改这些文件,需要返回到32位编译环境:

外部/clearsilver/cgi/Android.mk

外部/clearsilver/java-jni/Android.mk

外部/clearsilver/util/Android.mk

外部/clearsilver/cs/Android.mk

将编译选项-m64更改为-m32

再次make编译手机源码配置,不到一个小时就make完了。

你会在android2.3目录下的out/target/product/generic文件夹下听到system.img,所以编译正确

一切都完成了! !打开模拟器看是否出现模拟器,如果出现则正确

但如果你关闭这个终端并打开一个新终端,你会发现输入模拟器后突然不出现模拟器了。 现在是什么状况? 不用担心编译手机源码配置,因为您没有 SDK。 下面将教您如何编译SDK。

4. 编译SDK

这一步官网上没有解释,但是源码文件夹里有文档提到,就是android2.3/sdk/docs目录下有一个叫howto_build_SDK.txt的文件,介绍了如何编译SDK

根据这个文档我们可以看出我们编译SDK的正确指令是

编译手机源码配置-Ubuntu编译android源码并配置模拟器

进入源码目录

$ .build/envsetup.sh

$ 午餐 sdk-eng

$ 制作 SDK

如果出现Package SDK: out/host/darwin-x86/sdk/android-sdk_eng._mac-x86.zip,则说明编译成功。 默认为系统用户名

5.设置环境变量

最后一步是设置环境变量(我这里改的是全局变量,相当于windows下的系统环境变量,对所有用户有效),建议自动更改

找到/etc/profile(这是系统启动时运行的)

最后一行添加以下语句(前三句是java环境,后三句是android环境):

导出JAVA_HOME=/usr/java/jdk1.6.0_30

导出 PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH

导出 CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib

导出SDK_HOME=/media/Learn/android2.3source/Android2.3/out/

导出路径=$SDK_HOME/host/linux-x86/bin

导出 ANDROID_PRODUCT_OUT=$SDK_HOME/target/product/generic

(如果无法打开模拟器,需要执行以下源码/etc/profile)

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 编译手机源码配置-Ubuntu编译android源码并配置模拟器 https://www.wkzy.net/game/181219.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务