【问题标题】:Running android sdkmanager results in java.lang.ClassNotFoundException运行 android sdkmanager 导致 java.lang.ClassNotFoundException
【发布时间】:2020-05-03 06:04:32
【问题描述】:

我刚刚在macOS 上安装了Android Studio。我需要接受许可。如何运行sdkmanager

$tools/bin/sdkmanager 
APP_HOME=/Users/steve/Library/Android/sdk/tools
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:583)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)

请注意,我正在运行 java11,其中 javax.xml.bind 不存在。

【问题讨论】:

    标签: android-studio android-sdk-manager


    【解决方案1】:
    • 安装java 8,

    • 打开android studio>去配置>选择sdk manager>去sdk tools>在android sdk命令行工具上打勾>apply>等待安装

    • 输入命令

    颤振医生--android-licenses

    • 并输入 y 接受所有许可

    【讨论】:

    • 这似乎是替代命令,也可以工作。
    • Android SDK 命令行工具对我来说是关键。谢谢你提到它。还有一些其他工具的名称有些相似,这迫使我多看两眼。
    【解决方案2】:

    临时解决方法是我将jdk 版本重置为java8。然后sdkmanager 能够运行。是否有其他问题还有待观察。

    【讨论】:

    • 你是怎么重置jdk的??
    • 你必须下载jdk8并正确设置路径。 brew install jenv openjdk@8
    猜你喜欢
    • 1970-01-01
    • 2019-03-26
    • 2019-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多