Ubuntu编译Android源码时报错

报错信息如下:

 FAILED: /bin/bash out/target/common/docs/api-stubs-timestamp.rsp
java.lang.UnsupportedClassVersionError: com/google/doclava/Doclava : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:803)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:442)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:64)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:354)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:348)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:347)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    at com.sun.tools.javadoc.DocletInvoker.<init>(DocletInvoker.java:92)
    at com.sun.tools.javadoc.Start.setDocletInvoker(Start.java:441)
    at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:218)
    at com.sun.tools.javadoc.Start.begin(Start.java:167)
    at com.sun.tools.javadoc.Main.execute(Main.java:59)
    at com.sun.tools.javadoc.Main.main(Main.java:49)
javadoc: 错误 - 致命错误
1 个错误
ninja: build stopped: subcommand failed.
make: *** [ninja_wrapper] 错误 1

上网找了一些资料,有人说是jdk版本的问题。但我尝试切换之后并不能解决此问题。

$ java -version
openjdk version "1.8.0_111"
OpenJDK Runtime Environment (build 1.8.0_111-8u111-b14-3~14.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.111-b14, mixed mode)
$ echo $JAVA_HOME
/usr/lib/jvm/java-8-openjdk-amd6

求前辈大神答疑解惑,感激不尽!

这确实是jdk环境的错误,需要jdk8。Android编译不是走系统环境,在build/envsetup.sh中配置openjdk

可以在项目里更改jdk的版本,也可以安装jdk8从新配置。

sudo sudo update-alternatives --config java
把 java/javac/javah/javadoc都配置一遍,都配成open jdk 8

影子LEON   ok