ubuntu14.04编译安卓5.0遇到的坑

前端之家收集整理的这篇文章主要介绍了ubuntu14.04编译安卓5.0遇到的坑前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一、编译安卓5.01之前配置编译环境

1.配置一些依赖软件:

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa- dri:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386 dpkg-dev

2.配置JDK编译环境

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

$ sudo update-alternatives –config java
$ sudo update-alternatives –config javac
二、出现编译错误
java.lang.UnsupportedClassVersionError: com/google/doclava/Doclava : Unsupported major.minor version 51.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
	at com.sun.tools.javadoc.DocletInvoker.<init>(DocletInvoker.java:74)
	at com.sun.tools.javadoc.Start.setDocletInvoker(Start.java:380)
	at com.sun.tools.javadoc.Start.parseAndExecute(Start.java:179)
	at com.sun.tools.javadoc.Start.begin(Start.java:128)
	at com.sun.tools.javadoc.Main.execute(Main.java:41)
	at com.sun.tools.javadoc.Main.main(Main.java:31)
javadoc: 错误 - 致命错误
1 错误
make: *** [out/target/common/docs/api-stubs-timestamp] 错误 45
make: *** 正在等待未完成的任务....

三、编译错误解决

1.百度查资料发现,在编译高低版本Android工程时使用如下命令切换java版本似乎并不彻底,需

要彻底切换。使用下面命令可以进行查询并切换:
$ update-java-alternatives --list
java-1.7.0-openjdk-amd64 1071 /usr/lib/jvm/java-1.7.0-openjdk-amd64

$ sudo update-java-alternatives -s java-1.7.0-openjdk-amd64
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
切换的时候提示错误
update-java-alternatives: plugin alternative does not exist: /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64/IcedTeaPlugin.so
那么就需要安装IcedTeaPlugin才能完成切换:
$ sudo apt-get install icedtea-7-plugin
再次输入切换命令则可以成功切换。
$ sudo update-java-alternatives -s java-1.7.0-openjdk-amd64

四、再次编译安卓5.0系统

如无意外,再次编译安卓5.0则会顺利编译完成。

五、分析jdk版本为啥切换不彻底

究其原因,是缺少“ icedtea-7-plugin”,导致切换jdk1.7的时候不彻底,jdk1.7部分功能缺少,只要补全这个插件即可。


参考资料:

1.update-java-alternatives: plugin alternative does not exist之解决方法

2. android 5.0.1: Unsupported major.minor version 51.0

3.android系统编译对jdk和make的版本要求

猜你在找的Ubuntu相关文章