При попытке принять лицензии Android Studio я продолжаю получать эту ошибку "java.lang.NoClassDefFoundError"

Я пытаюсь создать свой первый проект студии Android. Я получаю эту ошибку:

Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/annotation/XmlSchema

Когда я пытаюсь создать простейший проект "MyFirstApp", я не получаю эту ошибку.

Я пытался запустить sdkmanager с терминала:

cd /Users/username/Library/Android/sdk/tools/bin
./sdkmanager --licenses

а также физически перейдя в каталог sdkmanager и дважды щелкнув sdkmanager.

Я получаю одинаковую ошибку на обоих. Я также обновил свою Java. Итак, почему я получаю эту ошибку? И как мне это исправить?

Полная ошибка выглядит следующим образом:

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:602)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521)
    ... 5 more

Кроме того, просто добавив его сюда, если это актуально, это результат, который я получаю при запуске java --version:

java 13.0.2 2020-01-14
Java(TM) SE Runtime Environment (build 13.0.2+8)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

2 ответа

Я проверил синхронизацию градиента внутри самой Android Studio и обнаружил там еще одну ошибку:

ERROR: Module 'app': platform 'android-29' not found.

Вероятно, это произошло потому, что я загрузил последнюю версию Android, которая называется Android R (также известная как Android 30 в Android Studio), в то время как этот проект, вероятно, ожидал версии 29 (Android Q). Итак, как только я загрузил и установил Android 29, перейдя в Инструменты -> Диспетчер SDK и перезапустив Android Studio, он работает нормально и не выдает никаких ошибок.

Для правильной работы sdkmanager требуется JDK 8, особенно при использовании параметра --licenses. Это не обязательно должен быть JDK оракула, AdoptOpenJDK отлично сработал для меня.

Другие вопросы по тегам