做android rom开发过程中,可能会经常做不同的版本4.2,4.4,5.1或者6.0。每个版本的编译环境对jdk的版本要求都有点差异。
4.2版本需要使用jdk1.5或者1.6,使用1.7的jdk编译时会报类型错误等问题
5.1以上的版本需使用openJDK 1.7及以上,否则会直接报“目标版本与源版本冲突”之类的问题。
平时,我们的一个Linux编译服务器中会存放多个不同android版本的项目,这个时候就要对单个项目进行jdk的配置才能避免jdk冲突。
首先,我们最好是在Linux编译服务器中下载两套jdk,一个1.6的和一个openJDK 1.7。注意这里jdk 1.6可以用apt命令下载安装,而openJDK是不能用apt来安装的,而是直接下载后解压到一个目录中存放即可。
接下来,我们看看我们要编译的工程所依赖的jdk版本
build\core\combo\javac.mk
Android 4.2的javac.mk代码如下:
# Selects a Java compiler.
#
# Inputs:
# CUSTOM_JAVA_COMPILER -- "eclipse", "openjdk". or nothing for the system
# default
#
# Outputs:
# COMMON_JAVAC -- Java compiler command with common arguments
# Whatever compiler is on this system.
ifeq ($(BUILD_OS), windows)
COMMON_JAVAC := development/host/windows/prebuilt/javawrap.exe -J-Xmx256m \
-target