关于使用sdkmanager命令报错(环境:Mac+Android SDK)

    最近再尝试着接触Android开发,然而如此愚蠢的我,在第一步装在Android SDK时就开始报错了。错误为:

$ sdkmanager --list
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
    at com.android.repository.api.SchemaModule$SchemaModuleVersion.(SchemaModule.java:156)
    at com.android.repository.api.SchemaModule.(SchemaModule.java:75)
    at com.android.sdklib.repository.AndroidSdkHandler.(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

然而我Java是能正常使用的

-bash-3.2$ java --version
java 10 2018-03-20
Java(TM) SE Runtime Environment 18.3 (build 10+46)
Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10+46, mixed mode)

在我百思不得其时,还是决定去博客或者论坛上求助答案了。功夫不负有心,我在stackoverflow看到有个人是提出了跟我一样的问题,当然这位大神在最后也找到了答案,并且也在评论出了自己的答案。

解决方法:

    1、找到你的sdkmanager文件(一般在tools文件夹中bin目录中)

    2、用你喜欢的编辑打开此文件
    3、找到DEFAULT_JVM_OPTS变量

DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME"'
    4、在该变量后加上 -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee
DEFAULT_JVM_OPTS='"-Dcom.android.sdklib.toolsdir=$APP_HOME" -XX:+IgnoreUnrecognizedVMOptions --add-modules java.se.ee'

    5、保存。重新打开终端运行sdkmanager --list就好了

关于使用sdkmanager命令报错(环境:Mac+Android SDK)_第1张图片

你可能感兴趣的:(Android)