【发布时间】:2021-12-06 07:56:39
【问题描述】:
我安装了android studio,安装了Android SDK,Android SDK Platform,Android Virtual Device,以及最新的android命令行工具sdk。在 .zshrc 我有一个 sdk 的路径:
export PATH="/opt/homebrew/opt/openjdk/bin:$PATH"
export ANDROID_HOME=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_HOME/emulator
export PATH=$PATH:$ANDROID_HOME/tools
export PATH=$PATH:$ANDROID_HOME/tools/bin
export PATH=$PATH:$ANDROID_HOME/platform-tools
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager
Java 是用 brew install openjdk 安装的,它是最新的 17 版本。
在终端运行时 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.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:73)
at com.android.sdklib.tool.sdkmanager.SdkManagerCli.main(SdkManagerCli.java:48)
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.annotation.XmlSchema
at
java.base/jdk.internal.loader.BuiltinClassLoader.
loadClass(BuiltinClassLoader.java:641)
at
java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.
loadClass(ClassLoaders.java:188)
at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:520)
... 5 more
【问题讨论】:
-
尝试将 sdkmanager 与 Java 8 一起使用(
JAVA_HOME均设置为 java 8 jdk 并添加到PATH)。 -
这能回答你的问题吗? Failed to run sdkmanager --list with Java 9
-
都是老答案,安装java 8之前需要卸载之前的java版本吗?
-
不,你可以安装多个java版本并排安装。使用
sdkmanager时,您只需将JAVA_HOME设置为您的jdk(8)的目录并将jdk(8)的bin目录添加到PATH之前,然后使用sdkmanager。 -
是的,尝试将其更改为
export PATH="/Library/Java/JavaVirtualMachines/zulu-8.jdk/bin:$PATH:$ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager"。
标签: java android-studio android-sdk-manager