Linux解决Android sdkmanager缺少类javax/xml/bind/annotation/XmlSchema

作者:anxin
日期:2017-07-12
分享:

1、问题描述

开发移动APP或者Web系统时,需要在移动端测试,那就避免不了安装Android SDK,运行Android sdkmanager命令查看可安装的工具包:

sdkmanager --list

意外的是却出现了如下错误代码:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
	at com.android.repository.api.SchemaModule$SchemaModuleVersion.<init>(SchemaModule.java:156)
	at com.android.repository.api.SchemaModule.<init>(SchemaModule.java:75)
	at com.android.sdklib.repository.AndroidSdkHandler.<clinit>(AndroidSdkHandler.java:81)
	at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:117)
	at com.android.sdklib.tool.SdkManagerCli.main(SdkManagerCli.java:93)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
	at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:582)
	at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:185)
	at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496)
	... 5 more

2、错误原因

从错误信息可以看出,产生错误的原因是缺少javax.xml.bind.annotation.XmlSchema类,那么说明所使用的JRE中缺少此类。

3、解决方法

安装Oracle JDK 8能够解决问题,有可能是你的系统中使用的其他版本的JRE,如Oracle JDK 9就会出现此问题。解决此问题只需设置环境变量JAVA_HOME为Oracle JDK 8即可:

export JAVA_HOME="/usr/lib/jvm/java-8-oracle"
本文链接:https://www.yuzhi100.com/article/linux-android-sdkmanager-xmlschema

本文版权归知站所有,未经站长同意不得转载,谢谢尊重作者劳动成果!

作者:anxin