java - sdkmanager 在线程 "main"java.lang.NoClassDefFoundError : javax/xml/bind/annotation/XmlSchema 中抛出异常

标签 java android gradle android-sdk-manager

我在 MacOS 上,从 AdoptOpenJDK 安装了 JDK 8 (LTS),以启动并运行 Android 环境,效果很好!

brew cask install adoptopenjdk/openjdk/adoptopenjdk8

但是在运行 sdkmanageravdmanager 时出现以下错误,因为 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/

相关文章:

java - 无法在 sonatype 存储库中找到简单天气项目

java - 使用 Java 获取用户输入并在 boolean 函数中使用它?

android - 数据绑定(bind) : Cannot find symbol class BR

java - WakefulBrodcastReceiver/Alert 不响(Wakelock?进程被杀死?)

java - 在函数中间调用Thread

java - 使用 HashSet 相对于 HashMap 的优点

java - 样式表不适用于第一个 JSF 页面

android - 未能运行 Robolectric 测试

android - 在android studio中构建apk时找不到Aapt_rules.txt

eclipse - 启动STS时出现Gradle错误