`
sijiangong
  • 浏览: 17929 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

Andriod源码编译时的JDK版本问题解决

阅读更多
最近编译Andriod源码时,因为涉及到对应不同的Android版本,
我需要在源码中切换2.x.x版本和3.0.x、4.0.x版本。

问题由此产生:

2.2.x版本需要使用jdk5.x.x
而2.3.x、3.0.x、4.0.x版本则需要使用jdk6.x.x来编译;

尽管google在http://source.android.com/source/initializing.html中写明了:

Java 6: for Gingerbread and newer
$ sudo add-apt-repository "deb http://archive.canonical.com/ lucid partner"
$ sudo apt-get update
$ sudo apt-get install sun-java6-jdk


Java 5: for Froyo and older
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy main multiverse"
$ sudo add-apt-repository "deb http://archive.ubuntu.com/ubuntu hardy-updates main multiverse"
$ sudo apt-get update
$ sudo apt-get install sun-java5-jdk


但是觉得觉得讲的还不够清楚。

搜索了一些资料后,发现:
1. Java5和Java6可以按照上述方式安装,并且安装完成后可以并存
2. 不同Java版本之间可以通过修改JAVA_HOME来切换,而PATH变量只需要设置为:
   export PATH=$JAVA_HOME/bin:$PATH
3. JAVA_HOME可以不用通过修改环境变量的方式切换,而是利用update-alternatives工具来管理。

具体做法:
1. 按照前述方法,安装JAVA5,JAVA6

2. 执行
sudo update-alternatives --config java 

出现以下内容:
有 2 个选项可用于替换项 java (提供 /usr/bin/java)。

  选择       路径                                    优先级  状态
------------------------------------------------------------
  0            /usr/lib/jvm/java-6-sun/jre/bin/java       63        自动模式
* 1            /usr/lib/jvm/java-1.5.0-sun/jre/bin/java   53        手动模式
  2            /usr/lib/jvm/java-6-sun/jre/bin/java       63        手动模式

要维持当前值[*]请按回车键,或者键入选择的编号:

按照提示选择想要的版本即可。

3. 同时还要执行
sudo update-alternatives --config javac 

执行相同的选择
   最新发现还需要执行
sudo update-alternatives --config javadoc 

原因是:某些形式的编译,比如生成目标是SDK时,会调用javadoc编译,此时如果javadoc的Version不对,则会产生找不到某些方法的异常...导致编译失败退出...

4. 执行 export PATH=$JAVA_HOME/bin:$PATH

5. 开始编译 make -j3,哈哈...
分享到:
评论

相关推荐

    Android 源码编译的jar包

    编译Android源码并生成`classes.jar`是一项复杂但极其有价值的工作,它能帮助开发者深入理解Android系统的运行机制,对优化应用性能、解决系统级问题或开发定制化ROM都有重大意义。通过学习这些知识,开发者可以更好...

    Android源码编译make的各类错误解决方案汇总

    Android源码编译make错误解决方案汇总 Android源码编译make过程中经常会遇到各种错误,这篇文章将总结各种常见错误的解决方案。 错误一:Java版本不正确 编译Android源码时,make命令可能会报错,提示您使用了...

    android2.2源码编译-Ubuntu10.04 (X86) + android2.2 + JDK1.6

    ### Android 2.2 源码编译指南:Ubuntu 10.04 (X86) + Android 2.2 + JDK 1.6 #### 一、环境搭建 在进行Android 2.2源码编译之前,我们需要准备一个合适的开发环境。根据题目中的描述,本指南将详细介绍如何在...

    Ubuntu系统下Android源码编译.pdf

    总之,Ubuntu系统下的Android源码编译涉及多个环节,包括环境准备、源码获取、编译配置和问题解决。理解并掌握这些步骤,对于Android开发者来说,不仅能够提升开发效率,也更有利于深入理解Android系统的内部工作...

    Android 源码编译过程

    Android源码编译过程是Android开发中的核心环节,它涉及到一系列复杂的步骤,旨在将源代码转化为可以在Android设备上运行的二进制系统映像。这个过程对于开发者来说至关重要,因为它允许自定义和优化Android系统,以...

    Android源码编译make的错误处理

    ### Android源码编译make的错误处理 #### 一、概览 在进行Android源码编译的过程中,可能会遇到各种各样的错误。本文主要针对在Linux环境下编译Android 4.0.1版本源码时遇到的一些典型问题,提供详细的解决方案。 ...

    Android源码编译文档

    总的来说,Android源码编译是一个复杂而深入的过程,涉及多方面的技术知识。从源码下载、环境配置到编译和镜像制作,每个环节都需要开发者具备扎实的Linux基础、Git操作技能以及对Android系统结构的深刻理解。通过...

    android 源码的下载,及其编译步骤

    - 遇到问题时,查阅官方文档或社区资源往往能提供解决方案。 - 考虑到编译时间较长,建议在夜间或空闲时间进行编译,同时保持电源稳定,避免意外中断。 - 最后,成功编译Android源码不仅是一项技术挑战,也是深入...

    Android源码编译流程借鉴.pdf

    《Android源码编译流程详解》 Android源码编译是开发者深入了解系统内核、定制化开发或进行系统级调试的重要步骤。本文将详细介绍Android源码的编译流程,包括必要的环境配置、编译指令以及相关工具的使用。 首先...

    android源码编译及rom制作.pptx

    ### Android源码编译及ROM制作 #### 一、概览 在《android源码编译及rom制作.pptx》这份文档中,主要讲解了如何进行Android源码的编译以及ROM的制作过程。这一过程对于那些希望深入了解Android操作系统工作原理、...

    Ubuntu编译android4.4源码

    6. 源码编译过程:文档中没有详细描述编译Android源码的具体过程,但提到了编译分为四个主要步骤:安装虚拟机软件、安装Ubuntu系统、安装JDK等工具包、源码编译。 总结: 在编译Android 4.4源码的过程中,选择合适...

    Android源码编译流程.pdf

    《Android源码编译流程详解》 Android系统作为全球最广泛使用的移动操作系统,其源码编译流程对于开发者而言至关重要。本文将详细解析Android源码的编译过程,包括环境搭建、编译命令以及相关工具的使用,帮助读者...

    Android源码的编译-教程[参考].pdf

    Android源码编译教程 Android源码编译是一个复杂的过程,需要具备一定的编程基础和Linux操作系统的使用经验。本文档旨在提供一个详细的教程,指导读者从零开始编译Android源码。 环境准备 在开始编译Android源码...

    linux下android源码编译文档

    2. 如果在使用新SDK创建项目时遇到问题,比如R.java文件未生成,可能需要检查编译设置或解决依赖问题。 以上就是Linux环境下编译Android源码的详细步骤,每个环节都需要细心操作,确保所有依赖都正确安装和配置。...

Global site tag (gtag.js) - Google Analytics