我在 MacOS 上,从 AdoptOpenJDK 安装了 JDK 8 (LTS),以启动并运行 Android 环境,效果很好!
brew cask install adoptopenjdk/openjdk/adoptopenjdk8
但是在运行 sdkmanager
或 avdmanager
时出现以下错误,因为 Gradle 6.5.1 现在需要 JVM 14.0.1 (Oracle Corporation 14.0.1+14 )。
Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema
正如这里建议的那样https://stackoverflow.com/a/51644855/6716408修复方法是降级 java 版本,但这是不可能的,因为 gradle 的 java 依赖性。
有什么解决办法吗?
最佳答案
Google 的 cmdline-tools 软件包包含 avdmanager 的替换版本,可以在 Java 9 及更高版本下正常运行。 cmdline-tools 应安装在 ~/Android/Sdk/cmdline-tools/latest 中。请改用该路径中的 avdmanager。
更新.zshrc/.bash_profile,如beblow
# android sdk
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 // remove this line
export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin // add this line
export PATH=$PATH:$ANDROID_HOME/platform-tools
关于java - sdkmanager 在线程 "main"java.lang.NoClassDefFoundError : javax/xml/bind/annotation/XmlSchema 中抛出异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63251321/