java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException 在更新到 Android Studio 4.2 之后

谷歌刚刚发布了Android Studio 4.2稳定版。我将我的 AS 从 4.1 更新到 4.2。现在我得到这个错误。它显示数据绑定中的错误。

Caused by: java.util.ServiceConfigurationError: javax.annotation.processing.Processor: android.databinding.annotationprocessor.ProcessDataBinding Unable to get public no-arg constructor
        at kotlin.collections.CollectionsKt___CollectionsKt.toCollection(_Collections.kt:1200)
        at kotlin.collections.CollectionsKt___CollectionsKt.toMutableList(_Collections.kt:1233)
        at kotlin.collections.CollectionsKt___CollectionsKt.toList(_Collections.kt:1224)
        at org.jetbrains.kotlin.kapt3.base.ProcessorLoader.doLoadProcessors(ProcessorLoader.kt:80)
        at org.jetbrains.kotlin.kapt3.base.ProcessorLoader.loadProcessors(ProcessorLoader.kt:45)
        at org.jetbrains.kotlin.kapt3.base.Kapt.kapt(Kapt.kt:42)
        ... 28 more
Caused by: java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException
        ... 34 more
Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException
        ... 34 more

答案 1

Android Studio 4.2.0 及更高版本现在附带 Java 11.0.8,默认情况下会使用它,这种情况在已弃用的库中会出现此错误。

解决方案很简单,您需要在菜单中将其更改为java(JDK)1.8File > Project Structure > JDK Location

image

请注意,低于4.2.0的Android Studio已经附带了java 1.8。


答案 2

通过执行以下步骤,我解决了这个问题,而无需将JDK替换为JAVA 8。

第 1 步:将distributionUrlhttps\://services.gradle.org/distributions/gradle-6.8.3-bin.zipgradle-wrapper.properties

步骤 2:将材质工具类路径更新到根目录'com.android.tools.build:gradle:4.2.1'buid.gradle


推荐