下载了android froyo版本编译,提示java版本不对,找了一下判断的地方
在 build/core/main.mk中
找到这两句话把其中的5改成6就好了
java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1/.5[/. "$$]')
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1/.5[/. "$$]')
为
java_version := $(shell java -version 2>&1 | head -n 1 | grep '[ "]1/.6[/. "$$]')
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1/.6[/. "$$]')
一路编译下来没有问题,但是在make sdk的时候又出现了下面的错误
Docs droiddoc: out/target/common/docs/dx
javadoc: error - In doclet class DroidDoc, method start has thrown an
exception java.lang.reflect.InvocationTargetException
com.sun.tools.javac.code.Symbol$CompletionFailure: class file for
sun.util.resources.OpenListResourceBundle not found
找了一下发现,网上的解决办法都是安装java 1.5去编译,偶又不想在系统上再装一个版本jdk了,研究了一下最新的版本anroid-AOSP代码已经没有这个问题了.
发现是在build/core/droiddoc.mk中添加了 -bootclasspath , 指定了rt.jar的路径。
对比两个代码生成了patch,可以保存到anroid源代码根目录然后用下面命令打补丁。
patch -p0 <patch_file
然后在make sdk就没有问题了。