При попытке принять лицензии 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 отлично сработал для меня.