在 Ubuntu 8.10环境下编译 Android 2.2
2010-08-23 17:44
363 查看
网上有很多相关的文章,这里把自己编译的过程再整理一下,同时指出一些关键点。
详细的准备可以参考
http://www.cnmsdn.com/html/201002/1267161395ID988.html
http://www.eoeandroid.com/thread-3134-1-1.html
个人觉得最关键的是 java环境 和 64位问题。
Android2.2及之前的版本,都依赖 Java5, 不知道在未来的Android3.0上,是否会升级成java6。
安装Java5,只需执行如下命令
sudo apt-get install sun-java5-jdk
也许你的机器已经安装了Java, 可用下面的命令检查Java版本
update-java-alternatives -l
我机器的输出为:
java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun
java-6-cacao 1059 /usr/lib/jvm/java-6-cacao
java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk
java-6-sun 63 /usr/lib/jvm/java-6-sun
java-gcj 1042 /usr/lib/jvm/java-gcj
也就是说,Java5和Java6都安装了,如何设置缺省的版本呢?用
update-java-alternatives –s 命令。
譬如,设置java5为缺省版本:
update-java-alternatives –s
java-1.5.0-sun
设置java6为缺省版本:
update-java-alternatives –s
java-6-sun
网上提到,除了用以上命令设置外,还需要设定环境变量JAVA_HOME,以指定Java的路径(网上也有人说不需要设置JAVA_HOME,这点我不是很确定,也没有进行严格的测试)
编辑您的用户主目录下的.bashrc文件
,在结尾部分增加以下内容:
export JAVA_HOME=/usr/lib/jvm/
java-1.5.0-sun
或者
export JAVA_HOME=/usr/lib/jvm/
java-6-sun
前者是针对Java5环境,后者是针对Java6环境
安装并配置好Java后,你可以用以下命令来检测当前的Java版本
java -version
输出类似下面的信息:
java version "1.5.0_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02)
Java HotSpot(TM) Server VM (build 1.5.0_19-b02, mixed mode)
如果没有安装Java5,那么编译会出现下面的错误
Docs droiddoc: out/target/common/docs/api-stubs
Could not load 'clearsilver-jni'
java.library.path = out/host/linux-x86/lib
make: *** [out/target/common/docs/api-stubs-timestamp] 错误 45
如果你刚开始编译的时候用的是Java6,编译到中途,出现上面的错误,然后你重新安装并设置成Java5,再重新执行make, 上面的问题仍然存在。解决的办法是:先make clean,然后重新make。
在编译过程中,有可能会出现这样的错误:
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such file or directory
解决办法
sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6
该过程很长,可能要2,3个小时
对我们比较有用的:
out/host/linux-x86/bin 该目录下存放Android工具链,如:adb, emulator, ...
out/target/product/generic 该目录下存放最终可运行的镜像文件:ramdisk.img, system.img, userdata.img, 以及它们对应
的目录树:root, system, data。
如果能正常运行,那么恭喜你!
1. 编译环境配置
详细的准备可以参考
http://www.cnmsdn.com/html/201002/1267161395ID988.html
http://www.eoeandroid.com/thread-3134-1-1.html
个人觉得最关键的是 java环境 和 64位问题。
Java 环境
Android2.2及之前的版本,都依赖 Java5, 不知道在未来的Android3.0上,是否会升级成java6。
安装Java5,只需执行如下命令
sudo apt-get install sun-java5-jdk
也许你的机器已经安装了Java, 可用下面的命令检查Java版本
update-java-alternatives -l
我机器的输出为:
java-1.5.0-sun 53 /usr/lib/jvm/java-1.5.0-sun
java-6-cacao 1059 /usr/lib/jvm/java-6-cacao
java-6-openjdk 1061 /usr/lib/jvm/java-6-openjdk
java-6-sun 63 /usr/lib/jvm/java-6-sun
java-gcj 1042 /usr/lib/jvm/java-gcj
也就是说,Java5和Java6都安装了,如何设置缺省的版本呢?用
update-java-alternatives –s 命令。
譬如,设置java5为缺省版本:
update-java-alternatives –s
java-1.5.0-sun
设置java6为缺省版本:
update-java-alternatives –s
java-6-sun
网上提到,除了用以上命令设置外,还需要设定环境变量JAVA_HOME,以指定Java的路径(网上也有人说不需要设置JAVA_HOME,这点我不是很确定,也没有进行严格的测试)
编辑您的用户主目录下的.bashrc文件
,在结尾部分增加以下内容:
export JAVA_HOME=/usr/lib/jvm/
java-1.5.0-sun
或者
export JAVA_HOME=/usr/lib/jvm/
java-6-sun
前者是针对Java5环境,后者是针对Java6环境
安装并配置好Java后,你可以用以下命令来检测当前的Java版本
java -version
输出类似下面的信息:
java version "1.5.0_19"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_19-b02)
Java HotSpot(TM) Server VM (build 1.5.0_19-b02, mixed mode)
如果没有安装Java5,那么编译会出现下面的错误
Docs droiddoc: out/target/common/docs/api-stubs
Could not load 'clearsilver-jni'
java.library.path = out/host/linux-x86/lib
make: *** [out/target/common/docs/api-stubs-timestamp] 错误 45
如果你刚开始编译的时候用的是Java6,编译到中途,出现上面的错误,然后你重新安装并设置成Java5,再重新执行make, 上面的问题仍然存在。解决的办法是:先make clean,然后重新make。
64位问题
该问题可以参考 http://www.poemcode.net/2010/07/android-stubs-64/在编译过程中,有可能会出现这样的错误:
/usr/include/gnu/stubs.h:9:27: error: gnu/stubs-64.h: No such file or directory
解决办法
sudo apt-get install lib64z1-dev libc6-dev-amd64 g++-multilib lib64stdc++6
其它问题
如果在编译过程中,发现少什么库,编译脚本会给出详细的信息,根据这些信息,你就知道那些库需要安装。2. 代码编译
进入android代码树, 执行根目录下的make该过程很长,可能要2,3个小时
3. 生成文件
编译生成的中间文件,及最终的目标文件都在out目录下对我们比较有用的:
out/host/linux-x86/bin 该目录下存放Android工具链,如:adb, emulator, ...
out/target/product/generic 该目录下存放最终可运行的镜像文件:ramdisk.img, system.img, userdata.img, 以及它们对应
的目录树:root, system, data。
4.在emulator里面运行镜像文件
emulator -system system.img -ramdisk ramdisk.img -data userdata.img如果能正常运行,那么恭喜你!
相关文章推荐
- 在 Ubuntu 8.10环境下编译 Android 2.2
- 在 Ubuntu 8.10环境下编译 Android 2.2
- 在 Ubuntu 8.10环境下编译 Android 2.2
- 在 Ubuntu 8.10环境下编译 Android 2.2
- 在 Ubuntu 8.10环境下编译 Android 2.2
- ubuntu 编译android2.2源码配置环境及jdk5(1)
- ubuntu 编译android2.2源码配置环境及jdk5(2)
- ubuntu 编译android2.2源码配置环境及jdk5(3)
- ubuntu 编译android2.2源码配置环境及jdk5(4)
- ubuntu 编译android2.2源码配置环境及jdk5(5)
- ubuntu 编译android2.2源码配置环境及jdk5(6)
- ubuntu 编译android2.2源码配置环境及jdk5(7)
- 移植windows eclipse下的Android项目到Ubuntu编译环境编译碰到的几个问题
- Ubuntu 14.04 x64配置Android 4.4 kitkat编译环境的方法
- Android 开发环境搭建---Android 编译需要的sun-java5-jdk在ubuntu10.04以上版本的安装问题
- android源码编译环境搭建(VMware9.0.1+ubuntu12.10)
- Ubuntu:Android编译环境设置和编译
- ubuntu环境 安装 android 交叉编译环境
- ubuntu 开机黑屏 (设置android编译环境时导致该问题)
- 【摘录】Ubuntu 10.04环境下载&编译Android-2.1_r2源代码