一直到froyo为止,Android仍然不支持用jdk1.6编译。
如果安装的是jdk1.6,编译时会有如下错误提示,
Checking build tools versions...
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: java version "1.6.0_20".
The correct version is: 1.5.
Please follow the machine setup instructions at
http://source.android.com/download
************************************************************
build/core/main.mk:117: *** stop. Stop.
这时可以修改build/core/main.mk,把对java的版本检查注释掉,如下
# Check for the correct version of java
#java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1/.5[/. "$$]')
#ifeq ($(strip $(java_version)),)
#$(info ************************************************************)
#$(info You are attempting to build with the incorrect version)
#$(info of java.)
#$(info $(space))
#$(info Your version is: $(shell java -version 2>&1 | head -n 1).)
#$(info The correct version is: 1.5.)
#$(info $(space))
#$(info Please follow the machine setup instructions at)
#$(info $(space)$(space)$(space)$(space)http://source.android.com/download)
#$(info ************************************************************)
#$(error stop)
#endif
# Check for the correct version of javac
#javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1/.5[/. "$$]')
#ifeq ($(strip $(javac_version)),)
#$(info ************************************************************)
#$(info You are attempting to build with the incorrect version)
#$(info of javac.)
#$(info $(space))
#$(info Your version is: $(shell javac -version 2>&1 | head -n 1).)
#$(info The correct version is: 1.5.)
#$(info $(space))
#$(info Please follow the machine setup instructions at)
#$(info $(space)$(space)$(space)$(space)http://source.android.com/download)
#$(info ************************************************************)
#$(error stop)
#endif
为了避免在生成java doc时出现错误,还需要修改build/core/droiddoc.mk,
不然make sdk还是会出错的。可以根据下面提示进行修改。
danny@danny-laptop:~/repository/cts-2.2_r4$ repo diff build/core/droiddoc.mk
project build/
diff --git a/core/droiddoc.mk b/core/droiddoc.mk
index 03ffa55..ba4857b 100644
--- a/core/droiddoc.mk
+++ b/core/droiddoc.mk
@@ -57,6 +57,13 @@ endif
$(full_target): PRIVATE_CLASSPATH:=$(LOCAL_CLASSPATH)
full_java_lib_deps :=
+$(full_target): PRIVATE_BOOTCLASSPATH :=
+ifeq ($(BUILD_OS),linux)
+# You have to set bootclasspath for javadoc manually on linux since Java 6.
+host_jdk_rt_jar := $(dir $(HOST_JDK_TOOLS_JAR))../jre/lib/rt.jar
+$(full_target): PRIVATE_BOOTCLASSPATH := $(host_jdk_rt_jar)
+endif
+
ifneq ($(LOCAL_IS_HOST_MODULE),true)
ifeq ($(LOCAL_JAVA_LIBRARIES),)
@@ -165,6 +172,7 @@ $(full_target): $(full_src_files) $(droiddoc_templates) $(droiddoc) $(html_dir_f
-templatedir $(PRIVATE_CUSTOM_TEMPLATE_DIR) /
-templatedir $(PRIVATE_TEMPLATE_DIR) /
$(PRIVATE_DROIDDOC_HTML_DIR) /
+ $(addprefix -bootclasspath ,$(PRIVATE_BOOTCLASSPATH)) /
$(addprefix -classpath ,$(PRIVATE_CLASSPATH)) /
-sourcepath $(PRIVATE_SOURCE_PATH)$(addprefix :,$(PRIVATE_CLASSPATH)) /
-d $(PRIVATE_OUT_DIR) /