ubuntu server编译安卓8遇到的报错(一)

a).配置JDK编译环境

我电脑里装了两个版本的jdk:1.7和1.8,而安卓8需要1.8版本的jdk,所以需要切换jdk版本,使用如下命令进行切换:

查下当前的java 版本:java -version
切换命令:sudo update-alternatives --config java
sudo update-alternatives --config javac

b).出现编译错误

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:449)
	at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
	at com.sun.tools.javadoc.DocletInvoker.(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: error - fatal error
1 error
[ 87% 67525/77454] //bionic/libc:common_libc versioner preprocess include [linux]
warning: attempted to generate guard with empty availability: obsoleted = 23
warning: attempted to generate guard with empty availability: obsoleted = 21
[ 87% 67526/77454] target Java: framework (out/target/common/obj/JAVA_LIBRARIES/framework_intermediates/classes)
ninja: build stopped: subcommand failed.

[0;31m#### failed to build some targets (02:12:01 (hh:mm:ss)) ####[00m

c).编译错误的解决

原因是在编译高低版本Android工程时使用上面命令切换java版本似乎并不彻底,要彻底切换使用下面命令可以进行查询并切换:

$ sudo update-java-alternatives --list
java-1.7.0-openjdk-amd64       1071       /usr/lib/jvm/java-1.7.0-openjdk-amd64
java-1.8.0-openjdk-amd64       1081       /usr/lib/jvm/java-1.8.0-openjdk-amd64
$ sudo update-java-alternatives -s java-1.8.0-openjdk-amd64  
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so  

切换的时候提示错误

update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so  

那么就需要安装IcedTeaPlugin才能完成切换:

$ sudo apt-get install icedtea-8-plugin 

上面安装命令没有成功,解决更新ubuntu server软件源、不识别dns......省略N字,再次安装成功,再次输入切换命令则可以成功切换。

sudo update-java-alternatives --set java-1.8.0-openjdk-amd64

再次编译还有其它问题见续篇二

本文参考连接:

https://blog.csdn.net/finley_/article/details/42426963

https://blog.csdn.net/qq_16982115/article/details/48624621

https://blog.csdn.net/MENGHUANBEIKE/article/details/79070448


你可能感兴趣的:(平台)